Le modèle Django "ne déclare pas un app_label explicite"

119

Je suis à bout de souffle. Après une dizaine d'heures de dépannage, probablement plus, je pensais être enfin en affaires, mais ensuite j'ai obtenu:

Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label 

Il y a tellement peu d'informations à ce sujet sur le Web, et aucune solution n'a résolu mon problème. Tout conseil serait extrêmement apprécié.

J'utilise Python 3.4 et Django 1.10.

Depuis mes settings.py:

INSTALLED_APPS = [
    'DeleteNote.apps.DeletenoteConfig',
    'LibrarySync.apps.LibrarysyncConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Et mes fichiers apps.py ressemblent à ceci:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

et

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'
Slbox
la source
2
Vous n'avez pas de django.contrib.contenttypes dans INSTALLED_APPS.
RemcoGerlich
2
Ensuite, l'autre chose probable est que vous l'avez importé avant que ses modèles ne soient chargés, est-ce qu'une application répertoriée avant les types de contenu dans INSTALLED_APPS l'utilise?
RemcoGerlich
1
C'est inhabituel, vous n'avez pas du tout de projet ou d'application?
RemcoGerlich
1
Tout ce qui a un models.py doit être dans INSTALLED_APPS; et si l'un d'eux utilise contenttype (à cause d'une clé étrangère générique, par exemple) alors il doit être sous contenttypes dans la liste.
RemcoGerlich
1
Frustrant, c'est probablement quelque chose de très petit mais difficile à dire d'ici où. Importez-vous certains de vos éléments dans settings.py ou plus?
RemcoGerlich

Réponses:

91

Manquez-vous de mettre le nom de votre application dans le fichier de paramètres? La myAppNameConfigclasse est la classe par défaut générée sur apps.py par la commande .manage.py createapp myAppName . Où myAppName est le nom de votre application.

settings.py

INSTALLED_APPS = [
'myAppName.apps.myAppNameConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

De cette façon, le fichier de paramètres trouve ce que vous voulez appeler votre application. Vous pouvez modifier son apparence ultérieurement dans le fichier apps.py en ajoutant le code suivant dans

myAppName / apps.py

class myAppNameConfig(AppConfig):
    name = 'myAppName'
    verbose_name = 'A Much Better Name'
Xeberdee
la source
D'accord, cela a beaucoup de sens pour moi avec l'exemple, et j'ai implémenté les changements maintenant en fonction de ma compréhension de la syntaxe, mais j'obtiens toujours à 100% la même erreur. J'ai mis à jour mon message pour élaborer.
Slbox
2
Merci à @xeberdee et @RemcoGerlich pour leur aide. En fin de compte, ma solution a été de charger mes applications sous les applications django.contrib, et de déplacer mon entrée de import django django.setup()dans mon settings.py, sous l' INSTALLED_APPSentrée.
Slbox
2
Juste par curiosité - pourquoi importer django django.setup () dans le fichier de paramètres? En outre, vos applications doivent se charger même si elles sont les premières de la liste des applications installées.
Xeberdee
1
Quelle est la différence entre ceci et ce qu'il a écrit dans sa question?
Matt D
1
Le point était de savoir comment l'application est découverte dans les paramètres INSTALLED_APPS via le champ de nom de la classe dans le fichier de configuration. Le message a été modifié.
Xeberdee
36

J'obtiens la même erreur et je ne sais pas comment résoudre ce problème. Il m'a fallu plusieurs heures pour remarquer que j'avais un init.py dans le même répertoire que le manage.py de django.

Avant:

|-- myproject
  |-- __init__.py
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Après:

|-- myproject
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

Il est assez confus que vous obtenez cette erreur "ne déclare pas une app_label explicite". Mais la suppression de ce fichier init a résolu mon problème.

Samuel
la source
2
Holy smokes, je regardais ça depuis si longtemps - super prise!
user3167654
J'essaie de générer de la documentation à l'aide de pydoc et mon application est masquée sans init.py
Serg Smyk
20

J'ai eu exactement la même erreur lors de l'exécution de tests avec PyCharm. Je l'ai corrigé en définissant explicitement DJANGO_SETTINGS_MODULEla variable d'environnement. Si vous utilisez PyCharm, cliquez simplement sur le bouton Modifier les configurations et choisissez Variables d'environnement .

Définissez la variable sur your_project_name.settingset cela devrait résoudre le problème.

Il semble que cette erreur se produit, car PyCharm exécute des tests avec les siens manage.py.

stasdeep
la source
1
J'ai eu ce problème lors de l'exécution des tests Pycharm, bien que l'exécution du serveur via Pycharm ne m'oblige pas à ajouter des paramètres. L'ajout manuel de DJANGO_SETTINGS_MODULE à la configuration pour le test est résolu si pour moi.
PhoebeB
1
De plus, lors de la modification des configurations, il est utile de modifier les modèles.
Yngve Høiseth
1
Paramètres -> Langues et cadres -> Django -> L'ajout d'une valeur sous les paramètres sera automatiquement défini DJANGO_SETTINGS_MODULEpour chaque nouvelle configuration de test de Django et Django.
Tobias Ernst
FYI, j'ai fait exactement comme indiqué par cette solution et cela n'a pas fonctionné la première fois. Il s'avère que PyCharm n'a pas enregistré DJANGO_SETTINGS_MODULEla première fois lorsque j'ai cliqué à ce moment- ApplyOK. Je l'ai fait une deuxième fois et maintenant ça marche. On dirait un peu de bizarrerie PyCharm.
MikeyE
Je devais m'assurer que j'avais déclaré correctement les importations: de <app>.<module> import <class>- l'importation automatique de PyCharm était manquante <app>. Une fois que j'ai corrigé cela (également vérifié les modules dépendants), cela a fonctionné correctement.
Matthew Hegarty
18

J'ai eu celui-ci quand j'ai utilisé ./manage.py shell puis j'ai accidentellement importé du répertoire de niveau du projet racine

# don't do this
from project.someapp.someModule import something_using_a_model
# do this
from someapp.someModule import something_using_a_model

something_using_a_model()
lukeaus
la source
im mon cas, je devais changer de from fields import xàfrom .fields import x
daigorocub
13

en tant que noob utilisant Python3 , je trouve que cela pourrait être une erreur d'importation au lieu d'une erreur Django

faux:

from someModule import someClass

droite:

from .someModule import someClass

cela se produit il y a quelques jours mais je ne peux vraiment pas le reproduire ... Je pense que seules les personnes qui découvrent Django peuvent rencontrer cela. Voici ce dont je me souviens:

essayez d'enregistrer un modèle dans admin.py:

from django.contrib import admin
from user import User
admin.site.register(User)

essayez d'exécuter le serveur, l'erreur ressemble à ceci

some lines...
File "/path/to/admin.py" ,line 6
tell you there is an import error
some lines...
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label

changer useren .user, problème résolu

rpstw
la source
9
Bienvenue dans stackoverflow! Je me sens obligé de mentionner que votre réponse n'a aucun rapport avec la question du PO. En tant que noob, vous devez être prudent en proposant des solutions sans d'abord vérifier leur exactitude. Mais revenez toujours et postez des réponses concrètes quand vous le pouvez - merci!
evadeflow
1
Je souhaite que plus de commentaires sur Stack soient comme le vôtre Xeon Phil. Trop souvent, les nouveaux utilisateurs sont chassés par des commentateurs enragés mécontents de ne pas être des experts de Stack dès le premier jour.
Slbox
1
Vous avez raison, @evadeflow, ma première réponse ne semble vraiment pas liée, j'essaie de clarifier la réponse. Quoi qu'il en soit, j'espère juste que la réponse sera utile.
rpstw le
C'était un problème similaire dans mon cas. 'from ..core.models import CommonInfo' devait devenir 'from apps.core.models import CommonInfo'
user42488
C'était mon problème, obscurci car il se produisait dans 2 fichiers distincts. Dang you, importations imbriquées! Dang you, mon rejet stupide des changements sensibles de 2to3!
9999 ans
13

J'ai eu le même problème tout à l'heure. J'ai corrigé le mien en ajoutant un espace de noms sur le nom de l'application. J'espère que quelqu'un trouvera cela utile.

apps.py

from django.apps import AppConfig    

class SalesClientConfig(AppConfig):
        name = 'portal.sales_client'
        verbose_name = 'Sales Client'
Wreeecks
la source
8

J'ai eu cette erreur lors de l'importation de modèles dans les tests, c'est-à-dire étant donné la structure de ce projet Django:

|-- myproject
    |-- manage.py
    |-- myproject
    |-- myapp
        |-- models.py  # defines model: MyModel
        |-- tests
            |-- test_models.py

dans le fichier que test_models.pyj'ai importé MyModelde cette manière:

from models import MyModel

Le problème a été résolu s'il est importé de cette manière:

from myapp.models import MyModel

J'espère que cela t'aides!

PS: C'est peut-être un peu tard, mais je n'ai pas trouvé dans les autres de réponses comment résoudre ce problème dans mon code et je souhaite partager ma solution.

Jules César
la source
juliocesar vous êtes un champion. Merci. C'était une erreur ridicule.
Kirk
2
Cela m'a pris plus de temps que prévu pour trouver cela. J'utilisais une importation relative dans mon fichier test.py. Vous avez l'erreur lors de l'utilisation from .models import MyModel. Changer pour from myapp.models import MyModelrésoudre le problème.
monkut
@monkut pareil ici. Je me demande pourquoi cela se produit. Au fait, j'utilise le dossier des applications personnalisées. "/ apps" dans la racine du projet, ajouté au chemin.
4

Après avoir continué à rencontrer ce problème et à revenir à cette question, j'ai pensé partager mon problème.

Tout ce que @Xeberdee est correct, alors suivez-le et voyez si cela résout le problème, sinon c'était mon problème:

Dans mon apps.py, voici ce que j'avais:

class AlgoExplainedConfig(AppConfig):
    name = 'algo_explained'
    verbose_name = "Explain_Algo"
    ....

Et tout ce que j'ai fait, c'est d'ajouter le nom du projet devant le nom de mon application comme ceci:

class AlgoExplainedConfig(AppConfig):
name = '**algorithms_explained**.algo_explained'
verbose_name = "Explain_Algo"

et cela a résolu mon problème et j'ai pu exécuter la commande makemigrations et migrate après cela! bonne chance

ZaMy
la source
3

J'ai eu cette erreur aujourd'hui en essayant d'exécuter des tests Django parce que j'utilisais la from .models import *syntaxe abrégée dans l'un de mes fichiers. Le problème était que j'avais une structure de fichiers comme celle-ci:

    apps/
      myapp/
        models/
          __init__.py
          foo.py
          bar.py

et dans models/__init__.pyj'importais mes modèles en utilisant la syntaxe abrégée:

    from .foo import *
    from .bar import *

Dans mon application, j'importais des modèles comme ceci:

    from myapp.models import Foo, Bar

Cela a causé le Django model doesn't declare an explicit app_labellors de l'exécution ./manage.py test.

Pour résoudre le problème, j'ai dû importer explicitement à partir du chemin complet dans models/__init__.py:

    from myapp.models.foo import *
    from myapp.models.bar import *

Cela a réglé l'erreur.

H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a

Inostia
la source
C'était aussi le problème pour moi. Merci!
Sam Creamer du
3

Dans mon cas, cela se produisait parce que j'ai utilisé un chemin de module relatif dans urls.py au niveau du projet , INSTALLED_APPSet apps.pyau lieu d'être enraciné dans la racine du projet. c'est-à-dire des chemins de modules absolus partout, plutôt que des chemins de modules relatifs + hacks.

Peu importe à quel point j'ai gâché les chemins dans INSTALLED_APPSet apps.pydans mon application, je ne pouvais pas obtenir les deux runserveret pytesttravailler jusqu'à ce que les trois soient enracinés dans la racine du projet.

Structure des dossiers:

|-- manage.py
|-- config
    |-- settings.py
    |-- urls.py
|-- biz_portal
    |-- apps
        |-- portal
            |-- models.py
            |-- urls.py
            |-- views.py
            |-- apps.py

Avec ce qui suit, je pourrais exécuter manage.py runserveret gunicorn avec wsgi et utiliser les portalvues d'application sans problème, mais pytest ferait une erreur ModuleNotFoundError: No module named 'apps'malgré DJANGO_SETTINGS_MODULEsa configuration correcte.

config / settings.py:

INSTALLED_APPS = [
    ...
    "apps.portal.apps.PortalConfig",
]

biz_portal / apps / portal / apps.py:

class PortalConfig(AppConfig):
    name = 'apps.portal'

config / urls.py:

urlpatterns = [
    path('', include('apps.portal.urls')),
    ...
]

Changer la référence de l'application dans config / settings.py en biz_portal.apps.portal.apps.PortalConfiget PortalConfig.namepour biz_portal.apps.portalpermettre l'exécution de pytest (je n'ai pas encore de tests pour les portalvues) mais une runservererreur avec

RuntimeError: la classe de modèle apps.portal.models.Business ne déclare pas un app_label explicite et n'est pas dans une application dans INSTALLED_APPS

Enfin, j'ai cherché apps.portalà voir ce qui utilise encore un chemin relatif, et j'ai trouvé que config / urls.py devrait également utiliser biz_portal.apps.portal.urls.

jbothma
la source
Hacks avec chemin relatif ......... A fait la même chose. Vos idées m'ont beaucoup aidé
zar3bski
2

J'ai rencontré cette erreur lorsque j'ai essayé de générer des migrations pour une seule application qui présentait des migrations mal formées en raison d'une fusion git. par exemple

manage.py makemigrations myapp

Quand j'ai supprimé ses migrations, puis j'ai exécuté:

manage.py makemigrations

l'erreur ne s'est pas produite et les migrations ont été générées avec succès.

Cerin
la source
Je vous remercie. Les migrations continuent d'être frustrantes.
HashRocketSyntax
2

J'ai eu un problème similaire, mais j'ai pu résoudre le mien en spécifiant explicitement l'app_label à l'aide de Meta Class dans ma classe models

class Meta:
    app_label  = 'name_of_my_app'
Benjamin Andoh
la source
Merci Benjamin! Dans mon projet Django, j'utilise Sphinx pour générer de la documentation, et la directive :: autoclass donnait l'erreur "app_label" jusqu'à ce que je l'ajoute à la classe Meta du modèle comme vous l'avez suggéré.
Stefan Musarra le
Je suis heureux que cela ait fonctionné pour vous
Benjamin Andoh le
1

J'ai eu cette erreur en essayant de mettre à niveau mon application Django Rest Framework vers DRF 3.6.3 et Django 1.11.1.

Pour toute autre personne dans cette situation, j'ai trouvé ma solution dans un problème GitHub , qui consistait à annuler le UNAUTHENTICATED_USERparamètre dans les paramètres DRF :

# webapp/settings.py
...
REST_FRAMEWORK = {
    ...
    'UNAUTHENTICATED_USER': None
    ...
}
Robin Winslow
la source
1

Je viens de rencontrer ce problème et j'ai compris ce qui n'allait pas. Puisqu'aucune réponse précédente ne décrivait le problème tel qu'il m'est arrivé, je pensais que je le publierais pour les autres:

  • le problème provenait de l'utilisation python migrate.py startapp myAppde mon dossier racine de projet, puis du déplacement de myApp vers un dossier enfant avec mv myApp myFolderWithApps/.
  • J'ai écrit myApp.models et j'ai couru python migrate.py makemigrations. Tout allait bien.
  • puis j'ai fait la même chose avec une autre application qui importait des modèles depuis myApp. Kaboom! J'ai rencontré cette erreur lors de l'exécution de makemigrations. C'est parce que je devais utiliser myFolderWithApps.myApppour référencer mon application, mais j'avais oublié de mettre à jour MyApp / apps.py. J'ai donc corrigé myApp / apps.py, settings / INSTALLED_APPS et mon chemin d'importation dans ma deuxième application.
  • mais l'erreur a continué à se produire: la raison était que j'avais des migrations essayant d'importer les modèles de myApp avec le mauvais chemin. J'ai essayé de corriger le fichier de migration, mais je suis allé au point où il était plus facile de réinitialiser la base de données et de supprimer les migrations pour recommencer à zéro.

Donc, pour faire une histoire courte: - le problème venait initialement du mauvais nom d'application dans apps.py de myApp, dans les paramètres et dans le chemin d'importation de ma deuxième application. - mais il ne suffisait pas de corriger les chemins à ces trois endroits, car des migrations avaient été créées avec des importations référençant le mauvais nom d'application. Par conséquent, la même erreur a continué à se produire lors de la migration (sauf cette fois à partir des migrations).

Alors ... vérifiez vos migrations, et bonne chance!

harrouet
la source
1

J'ai une erreur similaire lors de la création d'une API dans Django rest_framework.

RuntimeError: la classe de modèle apps.core.models.University ne déclare pas un> app_label explicite et n'est pas dans une application dans INSTALLED_APPS.

La réponse de luke_aus m'a aidé en corrigeant mes urls.py

de

from project.apps.views import SurgeryView

à

from apps.views import SurgeryView
Jade Dhangwattanotai
la source
Pour moi, je l'avais caché dans une migration. Je ne sais pas comment cela s'est passé, mais la suppression du nom / chemin du projet a corrigé les choses.
Michael Thompson
1

Dans mon cas, j'ai eu cette erreur lors du portage du code de Django 1.11.11 vers Django 2.2. Je définissais une classe dérivée FileSystemStorage personnalisée. Dans Django 1.11.11, j'avais la ligne suivante dans models.py:

from django.core.files.storage import Storage, DefaultStorage

et plus tard dans le fichier, j'avais la définition de classe:

class MyFileStorage(FileSystemStorage):

Cependant, dans Django 2.2, j'ai besoin de référencer explicitement la FileSystemStorageclasse lors de l'importation:

from django.core.files.storage import Storage, DefaultStorage, FileSystemStorage

et voilà !, l'erreur disparaît.

Notez que tout le monde rapporte la dernière partie du message d'erreur émis par le serveur Django. Cependant, si vous faites défiler vers le haut, vous trouverez la raison au milieu de cette erreur mambo-jambo.

user2641103
la source
1

dans mon cas, j'ai pu trouver un correctif et en regardant le code de tout le monde, c'est peut-être le même problème .. Je devais simplement ajouter 'django.contrib.sites' à la liste des applications installées dans le settings.py fichier.

j'espère que cela aide quelqu'un. c'est ma première contribution à la communauté du codage

Jermaine Haughton
la source
1

TL; DR: L'ajout d'un __init__.py vide a résolu le problème pour moi.

J'ai eu cette erreur dans PyCharm et j'ai réalisé que mon fichier de paramètres n'était pas du tout importé. Il n'y avait aucune erreur évidente me disant cela, mais quand j'ai mis du code absurde dans le settings.py, cela n'a pas causé d'erreur.

J'avais settings.py dans un dossier local_settings . Cependant, j'avais oublié d'inclure un __init__.py dans le même dossier pour lui permettre d'être importé. Une fois que j'ai ajouté cela, l'erreur a disparu.

James Bradbury
la source
1

Si vous avez toutes les bonnes configurations, il se peut que ce soit juste un désordre d'importation. gardez un œil sur la façon dont vous importez le modèle incriminé.

Ce qui suit ne fonctionnera pas from .models import Business. Utilisez plutôt le chemin d'importation complet:from myapp.models import Business

evanxg852000
la source
1

Si tout le reste échoue, et si vous voyez cette erreur en essayant d'importer dans une «console Python» PyCharm (ou «console Django»):

Essayez de redémarrer la console.

C'est assez embarrassant, mais il m'a fallu un certain temps avant de réaliser que j'avais oublié de faire ça.

Voici ce qui s'est passé:

Ajout d'une nouvelle application, puis d'un modèle minimal, puis tentative d'importer le modèle dans la console Python / Django (PyCharm pro 2019.2). Cela a soulevé l' doesn't declare an explicit app_labelerreur, car je n'avais pas ajouté la nouvelle application à INSTALLED_APPS. J'ai donc ajouté l'application à INSTALLED_APPS, essayé à nouveau l'importation, mais j'ai toujours eu la même erreur.

Je suis venu ici, j'ai lu toutes les autres réponses, mais rien ne semblait aller.

Enfin, il m'est apparu que je n'avais pas encore redémarré la console Python après avoir ajouté la nouvelle application à INSTALLED_APPS.

Remarque: ne pas redémarrer la console PyCharm Python, après avoir ajouté un nouvel objet à un module, est également un excellent moyen d'obtenir un ImportError: Cannot import name ...

djvg
la source
Merci pour cette réponse, j'ai oublié de trouver mon .envfichier et je faisais de mon mieux pour que les choses fonctionnent avec une configuration obsolète: /
sodimel
1

O ... M ... G J'avais cette erreur aussi et j'ai passé presque 2 jours dessus et maintenant j'ai finalement réussi à la résoudre. Honnêtement ... l'erreur n'avait rien à voir avec le problème. Dans mon cas, c'était une simple question de syntaxe. J'essayais d'exécuter un module python autonome qui utilisait certains modèles django dans un contexte django, mais le module lui-même n'était pas un modèle django. Mais je déclarais la classe mal

au lieu d'avoir

class Scrapper:
    name = ""
    main_link= ""
    ...

je faisais

class Scrapper(Website):
    name = ""
    main_link= ""
    ...

ce qui est évidemment faux. Le message est tellement trompeur que je ne pouvais pas m'en empêcher mais je pense que c'était un problème de configuration ou tout simplement d'utiliser django d'une mauvaise manière car je suis très nouveau dans ce domaine.

Je vais partager ceci ici pour quelqu'un de novice car moi qui traverse la même bêtise peut, espérons-le, résoudre son problème.

Rafael Santos
la source
0

J'ai reçu cette erreur après avoir déplacé le SECRET_KEYpour extraire d'une variable d'environnement et oublié de le définir lors de l'exécution de l'application. Si vous avez quelque chose comme ça dans votresettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

puis assurez-vous que vous définissez réellement la variable d'environnement.

ameier38
la source
0

Vous avez très probablement des importations dépendantes .

Dans mon cas, j'ai utilisé une classe de sérialiseur comme paramètre dans mon modèle, et la classe de sérialiseur utilisait ce modèle: serializer_class = AccountSerializer

from ..api.serializers import AccountSerializer

class Account(AbstractBaseUser):
    serializer_class = AccountSerializer
    ...

Et dans le fichier "sérialiseurs":

from ..models import Account

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = (
            'id', 'email', 'date_created', 'date_modified',
            'firstname', 'lastname', 'password', 'confirm_password')
    ...
Dashko Leonid
la source
0

J'ai eu cette erreur aujourd'hui et je me suis retrouvé ici après avoir cherché sur Google. Aucune des réponses existantes ne semble pertinente à ma situation. La seule chose que j'avais à faire était d'importer un modèle à partir de mon __init__.pyfichier au niveau supérieur d'une application. J'ai dû déplacer mes importations dans les fonctions en utilisant le modèle.

Django semble avoir un code étrange qui peut échouer comme celui-ci dans tant de scénarios différents!

en boîte
la source
0

J'ai eu cette erreur aussi aujourd'hui. Le message fait référence à une application spécifique de mes applications dans INSTALLED_APPS . Mais en fait, cela n'avait rien à voir avec cette application spécifique. J'ai utilisé un nouvel environnement virtuel et j'ai oublié d'installer certaines bibliothèques que j'ai utilisées dans ce projet. Après avoir installé les bibliothèques supplémentaires, cela a fonctionné.

black_hole_sun
la source
0

Pour les utilisateurs de PyCharm: j'ai eu une erreur en utilisant une structure de projet non "propre".

Était:

project_root_directory
└── src
    ├── chat
       ├── migrations
       └── templates
    ├── django_channels
    └── templates

Maintenant:

project_root_directory
├── chat
   ├── migrations
   └── templates
       └── chat
├── django_channels
└── templates

Voici beaucoup de bonnes solutions, mais je pense que, tout d'abord, vous devez nettoyer la structure de votre projet ou régler les paramètres de PyCharm Django avant de définir des DJANGO_SETTINGS_MODULEvariables, etc.

J'espère que ça aidera quelqu'un. À votre santé.

Pavel Druzhinin
la source
-1

Le problème est que:

  1. Vous avez apporté des modifications à votre fichier de modèles, mais vous ne les avez pas encore ajoutées à la base de données, mais vous essayez d'exécuter Python manage.py runserver.

  2. Exécutez Python manage.py makemigrations

  3. Python manage.py migrer

  4. Maintenant, Python manage.py runserver et tout devrait bien se passer.

Ken Edem
la source