J'ai une application Django très simple que j'essaie de déployer sur heroku, mais elle continue de planter. Tout fonctionne bien sur ma machine locale, mais pas sur heroku
voici l'erreur que je reçois (coupée aux parties pertinentes):
File "/app/hello/admin.py", line 4, in <module>
2017-07-10T20:12:27.482194+00:00 app[web.1]: import models
2017-07-10T20:12:27.482195+00:00 app[web.1]: ModuleNotFoundError: No module
named 'models'
J'utilise la structure de répertoire par défaut Django:
-python-mise en route
--Bonjour
---init. py
---admin.py (c'est là que se trouve l'erreur)
---models.py (c'est le fichier que j'essaye d'importer)
---tests.py
---views.py
Cela fonctionne très bien sur ma machine locale. Suis-je en train de l'importer mal? Honnêtement, je ne sais même pas par où commencer. Je n'ai aucun problème sur aucun de mes autres projets Django hébergés sur Heroku, juste celui-ci.
voici la partie pertinente de admin.py qui génère l'erreur:
from Django.contrib import admin
from Django import forms
import models
# Register your models here.
class BasicInfoCollectionForm(forms.ModelForm):
class Meta():
model = models.VolunteerBasicInfo
fields = ('removed for brevity')
Toute aide serait grandement appréciée
edit: Je viens de réaliser que cette application utilise python v3.6 sur heroku, alors que je faisais du dev avec python 2.7 sur ma machine locale).
Vous devez utiliser l'importation relative
from . import models
Ou il est préférable d'importer des modèles que vous utiliserez, car ils n'entreront pas en collision visuelle avec Django.db.models
.
from Django import forms
from .models import VolunteerBasicInfo
class BasicInfoCollectionForm(forms.ModelForm):
class Meta:
model = VolunteerBasicInfo
...
Vous n'avez pas non plus besoin d'utiliser des crochets avec class Meta
.