Ich bin am Ende des Witzes. Nach einem Dutzend Stunden Fehlerbehebung, wahrscheinlich mehr, dachte ich, ich wäre endlich im Geschäft, aber dann bekam ich:
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
Es gibt SO KLEINE Informationen dazu im Web, und keine Lösung da draußen hat mein Problem gelöst. Jeder Rat wäre sehr dankbar.
Ich benutze Python 3.4 und Django 1.10.
Aus meiner 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',
]
Und meine apps.py-Dateien sehen folgendermaßen aus:
from django.apps import AppConfig
class DeletenoteConfig(AppConfig):
name = 'DeleteNote'
und
from django.apps import AppConfig
class LibrarysyncConfig(AppConfig):
name = 'LibrarySync'
python
django
python-3.x
Slbox
quelle
quelle
Antworten:
Fehlt es Ihnen, Ihren Anwendungsnamen in die Einstellungsdatei einzutragen? Das
myAppNameConfig
ist die Standardklasse bei apps.py durch die erzeugte .manage.py createapp myAppName Befehl. Wobei myAppName der Name Ihrer App ist.settings.py
Auf diese Weise findet die Einstellungsdatei heraus, wie Sie Ihre Anwendung aufrufen möchten. Sie können das Aussehen später in der Datei apps.py ändern, indem Sie den folgenden Code hinzufügen
myAppName / apps.py.
quelle
import django django.setup()
in meiner settings.py unter denINSTALLED_APPS
Eintrag zu verschieben.Ich erhalte den gleichen Fehler und weiß nicht, wie ich dieses Problem herausfinden soll. Ich habe viele Stunden gebraucht, um zu bemerken, dass ich eine init.py im selben Verzeichnis habe wie die manage.py von django.
Vor:
Nach dem:
Es ist ziemlich verwirrt, dass Sie den Fehler "deklariert kein explizites app_label" erhalten. Aber das Löschen dieser Init- Datei hat mein Problem gelöst.
quelle
Ich hatte genau den gleichen Fehler beim Ausführen von Tests mit PyCharm. Ich habe es behoben, indem ich die
DJANGO_SETTINGS_MODULE
Umgebungsvariable explizit festgelegt habe . Wenn Sie PyCharm verwenden, klicken Sie einfach auf die Schaltfläche Konfigurationen bearbeiten und wählen Sie Umgebungsvariablen .Setzen Sie die Variable auf
your_project_name.settings
und das sollte das Problem beheben.Dieser Fehler tritt anscheinend auf, da PyCharm eigene Tests ausführt
manage.py
.quelle
DJANGO_SETTINGS_MODULE
für jede neue Django- und Django-Testlaufkonfiguration festgelegt.DJANGO_SETTINGS_MODULE
ersten Mal , als ich klickteApply
dannOK
. Ich habe es ein zweites Mal gemacht und jetzt funktioniert es. Scheint ein bisschen wie PyCharm-Verrücktheit.<app>.<module> import <class>
- Der automatische Import von PyCharm fehlte<app>
. Sobald ich dies korrigiert habe (auch abhängige Module überprüft), hat es in Ordnung funktioniert.Ich habe dieses bekommen, als ich es verwendet habe,
./manage.py shell
dann habe ich es versehentlich aus dem Stammverzeichnis auf Projektebene importiertquelle
from fields import x
zufrom .fields import x
Als Neuling bei Python3 finde ich, dass es sich möglicherweise um einen Importfehler anstelle eines Django-Fehlers handelt
falsch:
richtig:
Das passiert vor ein paar Tagen, aber ich kann es wirklich nicht reproduzieren ... Ich denke, nur Leute, die neu in Django sind, können darauf stoßen. Ich erinnere mich an Folgendes:
Versuchen Sie, ein Modell in admin.py zu registrieren:
Versuchen Sie, den Server auszuführen. Der Fehler sieht folgendermaßen aus
Wechsel
user
zu.user
, Problem gelöstquelle
Ich hatte gerade das gleiche Problem. Ich habe meine behoben, indem ich dem App-Namen einen Namespace hinzugefügt habe. Hoffe jemand findet das hilfreich.
apps.py.
quelle
Ich habe diesen Fehler beim Importieren von Modellen in Tests erhalten, dh angesichts dieser Django-Projektstruktur:
in Datei, die
test_models.py
ichMyModel
auf diese Weise importiert habe:Das Problem wurde behoben, wenn es auf folgende Weise importiert wurde:
Hoffe das hilft!
PS: Vielleicht ist dies etwas spät, aber ich habe in anderen Antworten keine Antworten gefunden, wie dieses Problem in meinem Code gelöst werden kann, und ich möchte meine Lösung teilen.
quelle
from .models import MyModel
. Ändern, umfrom myapp.models import MyModel
das Problem zu beheben.Nachdem ich immer wieder auf dieses Problem gestoßen war und immer wieder auf diese Frage zurückgekommen bin, dachte ich, ich würde teilen, was mein Problem war.
Alles, was @Xeberdee korrekt ist, folgen Sie dem, und prüfen Sie, ob das Problem dadurch behoben wird. Wenn dies nicht mein Problem war:
In meiner apps.py hatte ich Folgendes:
Und alles, was ich getan habe, war, den Projektnamen vor meinem App-Namen wie folgt hinzuzufügen:
und das löste mein Problem und ich konnte den Makemigrations- und Migrationsbefehl danach ausführen! Viel Glück
quelle
Ich hatte heute diesen Fehler beim Versuch, Django-Tests auszuführen, weil ich die Kurzschrift-
from .models import *
Syntax in einer meiner Dateien verwendet habe. Das Problem war, dass ich eine Dateistruktur wie folgt hatte:und in
models/__init__.py
importierte ich meine Modelle mit der Kurzsyntax:In meiner Anwendung habe ich Modelle wie folgt importiert:
Dies verursachte das
Django model doesn't declare an explicit app_label
beim Laufen./manage.py test
.Um das Problem zu beheben, musste ich explizit aus dem vollständigen Pfad importieren in
models/__init__.py
:Das hat den Fehler behoben.
H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a
quelle
In meinem Fall geschah dies, weil ich einen relativen Modulpfad in Projektebene verwendet urls.py ,
INSTALLED_APPS
undapps.py
anstatt in der Projektwurzel verankert. dh absolute Modulpfade durchgehend und keine relativen Modulpfade + Hacks.Egal wie sehr ich mit den Pfaden in
INSTALLED_APPS
undapps.py
in meiner App herumgespielt habe, ich konnte nicht beide bekommenrunserver
undpytest
arbeiten, bis alle drei im Projektstamm verwurzelt waren.Ordnerstruktur:
Mit dem Folgenden konnte ich ohne Probleme
manage.py runserver
mit wsgi laufen und gunicorn undportal
App-Ansichten verwenden, aber pytest würdeModuleNotFoundError: No module named 'apps'
trotzDJANGO_SETTINGS_MODULE
korrekter Konfiguration einen Fehler machen .config / settings.py:
biz_portal / apps / portal / apps.py:
config / urls.py:
Das Ändern der App-Referenz in config / settings.py in
biz_portal.apps.portal.apps.PortalConfig
undPortalConfig.name
umbiz_portal.apps.portal
die Ausführung von pytest zuzulassen (ich habe noch keine Tests fürportal
Ansichten),runserver
würde aber einen Fehler verursachenSchließlich suchte ich nach Informationen darüber
apps.portal
, was noch einen relativen Pfad verwendet, und stellte fest, dass config / urls.py ebenfalls verwendet werden solltebiz_portal.apps.portal.urls
.quelle
Dieser Fehler trat auf, als ich versuchte, Migrationen für eine einzelne App zu generieren, bei der aufgrund einer Git-Zusammenführung fehlerhafte Migrationen vorhanden waren. z.B
Als ich die Migrationen gelöscht und dann ausgeführt habe:
Der Fehler ist nicht aufgetreten und die Migrationen wurden erfolgreich generiert.
quelle
Ich hatte ein ähnliches Problem, konnte es jedoch lösen, indem ich das app_label mithilfe der Meta-Klasse in meiner Modellklasse explizit angab
quelle
Ich habe diesen Fehler beim Versuch, meine Django Rest Framework- App auf DRF 3.6.3 und Django 1.11.1 zu aktualisieren, erhalten.
Für alle anderen in dieser Situation fand ich meine Lösung in einem GitHub-Problem , bei dem die
UNAUTHENTICATED_USER
Einstellung in den DRF-Einstellungen aufgehoben wurde :quelle
Ich bin gerade auf dieses Problem gestoßen und habe herausgefunden, was schief gelaufen ist. Da keine vorherige Antwort das Problem so beschrieb, wie es mir passiert ist, dachte ich, ich würde es für andere posten:
python migrate.py startapp myApp
aus meinem Projektstammordner und dem Verschieben von myApp in einen untergeordneten Ordner mitmv myApp myFolderWithApps/
.python migrate.py makemigrations
. Alles ist gut gegangen.myFolderWithApps.myApp
meine App referenzieren musste, aber vergessen hatte, MyApp / apps.py zu aktualisieren. Also habe ich myApp / apps.py, settings / INSTALLED_APPS und meinen Importpfad in meiner zweiten App korrigiert.Um es kurz zu machen: - Das Problem kam ursprünglich vom falschen App-Namen in apps.py von myApp, in den Einstellungen und im Importpfad meiner zweiten App. - Es reichte jedoch nicht aus, die Pfade an diesen drei Stellen zu korrigieren, da Migrationen mit Importen erstellt wurden, die auf den falschen App-Namen verweisen. Daher trat während der Migration immer wieder derselbe Fehler auf (außer diesmal bei Migrationen).
Also ... überprüfen Sie Ihre Migrationen und viel Glück!
quelle
Ich habe einen ähnlichen Fehler beim Erstellen einer API in Django rest_framework.
Die Antwort von luke_aus hat mir geholfen, indem sie meine urls.py korrigiert hat
von
zu
quelle
In meinem Fall habe ich diesen Fehler beim Portieren von Code von Django 1.11.11 nach Django 2.2 erhalten. Ich habe eine benutzerdefinierte von FileSystemStorage abgeleitete Klasse definiert. In Django 1.11.11 hatte ich die folgende Zeile in models.py:
und später in der Datei hatte ich die Klassendefinition:
In Django 2.2 muss ich jedoch
FileSystemStorage
beim Importieren explizit auf die Klasse verweisen :und voilà!, der Fehler verschwindet.
Beachten Sie, dass jeder den letzten Teil der vom Django-Server ausgegebenen Fehlermeldung meldet. Wenn Sie jedoch nach oben scrollen, finden Sie den Grund in der Mitte dieses Fehlers mambo-jambo.
quelle
In meinem Fall konnte ich einen Fix finden, und wenn ich mir den Code aller anderen anschaue, kann es sich um dasselbe Problem handeln. Ich musste einfach nur 'django.contrib.sites' zur Liste der installierten Apps in der settings.py hinzufügen Datei.
hoffe das hilft jemandem. Dies ist mein erster Beitrag zur Coding-Community
quelle
TL; DR: Das Hinzufügen eines leeren __init__.py hat das Problem für mich behoben.
Ich habe diesen Fehler in PyCharm erhalten und festgestellt, dass meine Einstellungsdatei überhaupt nicht importiert wurde. Es gab keinen offensichtlichen Fehler, der mir dies mitteilte, aber als ich einen unsinnigen Code in die settings.py einfügte, verursachte dies keinen Fehler.
Ich hatte settings.py in einem Ordner local_settings . Ich wollte jedoch eine __init__.py in denselben Ordner aufnehmen, damit sie importiert werden kann. Nachdem ich dies hinzugefügt hatte, verschwand der Fehler.
quelle
Wenn Sie alle Einstellungen richtig vorgenommen haben, handelt es sich möglicherweise nur um ein Importproblem. Behalten Sie im Auge, wie Sie das fehlerhafte Modell importieren.
Folgendes wird nicht funktionieren
from .models import Business
. Verwenden Sie stattdessen den vollständigen Importpfad:from myapp.models import Business
quelle
Wenn alles andere fehlschlägt und dieser Fehler beim Importieren in eine PyCharm "Python-Konsole" (oder "Django-Konsole") auftritt:
Versuchen Sie, die Konsole neu zu starten.
Das ist ziemlich peinlich, aber es hat eine Weile gedauert, bis mir klar wurde, dass ich das vergessen hatte.
Folgendes ist passiert:
Fügte eine neue App hinzu, fügte dann ein Minimalmodell hinzu und versuchte dann, das Modell in die Python / Django-Konsole (PyCharm Pro 2019.2) zu importieren. Dies
doesn't declare an explicit app_label
löste den Fehler aus, da ich die neue App nicht hinzugefügt hatteINSTALLED_APPS
. Also habe ich die App hinzugefügtINSTALLED_APPS
, den Import erneut versucht, aber immer noch den gleichen Fehler erhalten.Kam hierher, las alle anderen Antworten, aber nichts schien zu passen.
Schließlich fiel mir auf, dass ich die Python-Konsole nach dem Hinzufügen der neuen App noch nicht neu gestartet hatte
INSTALLED_APPS
.Hinweis: Wenn Sie die PyCharm Python-Konsole nach dem Hinzufügen eines neuen Objekts zu einem Modul nicht neu starten, ist dies auch eine gute Möglichkeit, um sehr verwirrend zu werden
ImportError: Cannot import name ...
quelle
.env
Datei zuO ... M ... G Ich habe auch diesen Fehler bekommen und fast 2 Tage damit verbracht und jetzt habe ich es endlich geschafft, ihn zu lösen. Ehrlich gesagt ... der Fehler hatte nichts mit dem Problem zu tun. In meinem Fall war es eine einfache Frage der Syntax. Ich habe versucht, ein eigenständiges Python-Modul auszuführen, das einige Django-Modelle in einem Django-Kontext verwendet, aber das Modul selbst war kein Django-Modell. Aber ich habe die Klasse für falsch erklärt
anstatt zu haben
ich habe getan
das ist offensichtlich falsch. Die Nachricht ist so irreführend, dass ich mir nicht helfen konnte, aber ich denke, es war ein Problem mit der Konfiguration oder der falschen Verwendung von Django, da ich sehr neu darin bin.
Ich werde dies hier für einen Neuling teilen, da ich durch die gleiche Albernheit hoffentlich sein Problem lösen kann.
quelle
Ich habe diesen Fehler erhalten, nachdem ich das
SECRET_KEY
Ziehen aus einer Umgebungsvariablen verschoben und vergessen habe, es beim Ausführen der Anwendung festzulegen. Wenn Sie so etwas in Ihrem habensettings.py
Stellen Sie dann sicher, dass Sie die Umgebungsvariable tatsächlich festlegen.
quelle
Höchstwahrscheinlich haben Sie abhängige Importe .
In meinem Fall habe ich eine Serializer-Klasse als Parameter in meinem Modell verwendet, und die Serializer-Klasse hat dieses Modell verwendet: serializer_class = AccountSerializer
Und in der Datei "Serializer":
quelle
Ich habe diesen Fehler heute bekommen und bin hier gelandet, nachdem ich gegoogelt habe. Keine der vorhandenen Antworten scheint für meine Situation relevant zu sein. Das einzige, was ich tun musste, war ein Modell von meinem zu importieren
__init__.py
Datei in der obersten Ebene einer App . Ich musste meine Importe mithilfe des Modells in die Funktionen verschieben.Django scheint einen seltsamen Code zu haben, der in so vielen verschiedenen Szenarien so fehlschlagen kann!
quelle
Ich habe diesen Fehler auch heute bekommen. Die Nachricht bezieht sich auf eine bestimmte App meiner Apps in INSTALLED_APPS . Tatsächlich hatte es aber nichts mit dieser speziellen App zu tun. Ich habe eine neue virtuelle Umgebung verwendet und vergessen, einige Bibliotheken zu installieren, die ich in diesem Projekt verwendet habe. Nachdem ich die zusätzlichen Bibliotheken installiert hatte, funktionierte es.
quelle
Für PyCharm-Benutzer: Ich hatte einen Fehler bei der Verwendung der nicht "sauberen" Projektstruktur.
War:
Jetzt:
Hier sind viele gute Lösungen, aber ich denke, zuerst sollten Sie Ihre Projektstruktur bereinigen oder die PyCharm Django-Einstellungen anpassen, bevor Sie
DJANGO_SETTINGS_MODULE
Variablen festlegen und so weiter.Hoffe es wird jemandem helfen. Prost.
quelle
Das Problem ist, dass:
Sie haben Änderungen an Ihrer Modelldatei vorgenommen, diese jedoch noch nicht zur Datenbank hinzugefügt. Sie versuchen jedoch, Python manage.py runserver auszuführen.
Führen Sie Python manage.py makemigrations aus
Python manage.py migrieren
Jetzt Python manage.py runserver und alles sollte in Ordnung sein.
quelle