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'
python
django
python-3.x
Slbox
la source
la source
Réponses:
Manquez-vous de mettre le nom de votre application dans le fichier de paramètres? La
myAppNameConfig
classe 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
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
la source
import django django.setup()
dans mon settings.py, sous l'INSTALLED_APPS
entrée.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:
Après:
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.
la source
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_MODULE
la 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.settings
et 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
.la source
DJANGO_SETTINGS_MODULE
pour chaque nouvelle configuration de test de Django et Django.DJANGO_SETTINGS_MODULE
la première fois lorsque j'ai cliqué à ce moment-Apply
làOK
. Je l'ai fait une deuxième fois et maintenant ça marche. On dirait un peu de bizarrerie PyCharm.<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.J'ai eu celui-ci quand j'ai utilisé
./manage.py shell
puis j'ai accidentellement importé du répertoire de niveau du projet racinela source
from fields import x
àfrom .fields import x
en tant que noob utilisant Python3 , je trouve que cela pourrait être une erreur d'importation au lieu d'une erreur Django
faux:
droite:
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:
essayez d'exécuter le serveur, l'erreur ressemble à ceci
changer
user
en.user
, problème résolula source
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
la source
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:
dans le fichier que
test_models.py
j'ai importéMyModel
de cette manière:Le problème a été résolu s'il est importé de cette manière:
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.
la source
from .models import MyModel
. Changer pourfrom myapp.models import MyModel
résoudre le problème.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:
Et tout ce que j'ai fait, c'est d'ajouter le nom du projet devant le nom de mon application comme ceci:
et cela a résolu mon problème et j'ai pu exécuter la commande makemigrations et migrate après cela! bonne chance
la source
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:et dans
models/__init__.py
j'importais mes modèles en utilisant la syntaxe abrégée:Dans mon application, j'importais des modèles comme ceci:
Cela a causé le
Django model doesn't declare an explicit app_label
lors 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
:Cela a réglé l'erreur.
H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a
la source
Dans mon cas, cela se produisait parce que j'ai utilisé un chemin de module relatif dans urls.py au niveau du projet ,
INSTALLED_APPS
etapps.py
au 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_APPS
etapps.py
dans mon application, je ne pouvais pas obtenir les deuxrunserver
etpytest
travailler jusqu'à ce que les trois soient enracinés dans la racine du projet.Structure des dossiers:
Avec ce qui suit, je pourrais exécuter
manage.py runserver
et gunicorn avec wsgi et utiliser lesportal
vues d'application sans problème, mais pytest ferait une erreurModuleNotFoundError: No module named 'apps'
malgréDJANGO_SETTINGS_MODULE
sa configuration correcte.config / settings.py:
biz_portal / apps / portal / apps.py:
config / urls.py:
Changer la référence de l'application dans config / settings.py en
biz_portal.apps.portal.apps.PortalConfig
etPortalConfig.name
pourbiz_portal.apps.portal
permettre l'exécution de pytest (je n'ai pas encore de tests pour lesportal
vues) mais unerunserver
erreur avecEnfin, j'ai cherché
apps.portal
à voir ce qui utilise encore un chemin relatif, et j'ai trouvé que config / urls.py devrait également utiliserbiz_portal.apps.portal.urls
.la source
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
Quand j'ai supprimé ses migrations, puis j'ai exécuté:
l'erreur ne s'est pas produite et les migrations ont été générées avec succès.
la source
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
la source
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_USER
paramètre dans les paramètres DRF :la source
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:
python migrate.py startapp myApp
de mon dossier racine de projet, puis du déplacement de myApp vers un dossier enfant avecmv myApp myFolderWithApps/
.python migrate.py makemigrations
. Tout allait bien.myFolderWithApps.myApp
pour 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.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!
la source
J'ai une erreur similaire lors de la création d'une API dans Django rest_framework.
La réponse de luke_aus m'a aidé en corrigeant mes urls.py
de
à
la source
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:
et plus tard dans le fichier, j'avais la définition de classe:
Cependant, dans Django 2.2, j'ai besoin de référencer explicitement la
FileSystemStorage
classe lors de l'importation: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.
la source
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
la source
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.
la source
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
la source
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_label
erreur, 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 ...
la source
.env
fichier et je faisais de mon mieux pour que les choses fonctionnent avec une configuration obsolète: /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
je faisais
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.
la source
J'ai reçu cette erreur après avoir déplacé le
SECRET_KEY
pour 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
puis assurez-vous que vous définissez réellement la variable d'environnement.
la source
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
Et dans le fichier "sérialiseurs":
la source
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__.py
fichier 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!
la source
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é.
la source
Pour les utilisateurs de PyCharm: j'ai eu une erreur en utilisant une structure de projet non "propre".
Était:
Maintenant:
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_MODULE
variables, etc.J'espère que ça aidera quelqu'un. À votre santé.
la source
Le problème est que:
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.
Exécutez Python manage.py makemigrations
Python manage.py migrer
Maintenant, Python manage.py runserver et tout devrait bien se passer.
la source