Django-Modell "deklariert kein explizites app_label"

119

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'
Slbox
quelle
2
Sie haben keine django.contrib.contenttypes in INSTALLED_APPS.
RemcoGerlich
2
Die andere wahrscheinliche Sache ist, dass Sie es importiert haben, bevor die Modelle geladen wurden. Wird eine App, die vor den Inhaltstypen in INSTALLED_APPS aufgeführt ist, verwendet?
RemcoGerlich
1
Das ist ungewöhnlich, Sie haben überhaupt kein eigenes Projekt oder keine eigene App?
RemcoGerlich
1
Alles, was eine models.py hat, sollte sich in INSTALLED_APPS befinden. und wenn einer von ihnen den Inhaltstyp verwendet (z. B. aufgrund eines generischen Fremdschlüssels), muss er in der Liste unter den Inhaltstypen stehen.
RemcoGerlich
1
Frustrierend, es ist wahrscheinlich etwas sehr Kleines, aber von hier aus schwer zu sagen, wo. Importieren Sie Ihre Inhalte in settings.py oder so?
RemcoGerlich

Antworten:

91

Fehlt es Ihnen, Ihren Anwendungsnamen in die Einstellungsdatei einzutragen? Das myAppNameConfigist die Standardklasse bei apps.py durch die erzeugte .manage.py createapp myAppName Befehl. Wobei myAppName der Name Ihrer App ist.

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',
]

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.

class myAppNameConfig(AppConfig):
    name = 'myAppName'
    verbose_name = 'A Much Better Name'
Xeberdee
quelle
Okay, das macht für mich mit dem Beispiel sehr viel Sinn, und ich habe die Änderungen jetzt basierend auf meinem Verständnis der Syntax implementiert, aber ich treffe immer noch 100% genau den gleichen Fehler. Ich habe meinen Beitrag aktualisiert, um näher darauf einzugehen.
Slbox
2
Vielen Dank an @xeberdee und @RemcoGerlich für ihre Hilfe. Am Ende bestand meine Lösung darin, meine Apps unter den django.contrib-Apps zu laden und meinen Eintrag import django django.setup()in meiner settings.py unter den INSTALLED_APPSEintrag zu verschieben.
Slbox
2
Nur aus Neugier - warum django django.setup () in die Einstellungsdatei importieren? Außerdem sollten Ihre Apps geladen werden, auch wenn sie die ersten in der Liste der installierten Apps sind.
Xeberdee
1
Was ist der Unterschied zwischen dem und dem, was er in seiner Frage geschrieben hat?
Matt D
1
Der Punkt war, wie die App in den Einstellungen INSTALLED_APPS über das Namensfeld der Klasse in der Konfigurationsdatei erkannt wird. Der Beitrag wurde bearbeitet.
Xeberdee
34

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:

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

Nach dem:

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

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.

Samuel
quelle
2
Heiliger Rauch, ich habe mir das so lange angesehen - toller Fang!
user3167654
Ich versuche, mit pydoc Dokumentation zu erstellen, und meine App ist ohne init.py versteckt
Serg Smyk
20

Ich hatte genau den gleichen Fehler beim Ausführen von Tests mit PyCharm. Ich habe es behoben, indem ich die DJANGO_SETTINGS_MODULEUmgebungsvariable 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.settingsund das sollte das Problem beheben.

Dieser Fehler tritt anscheinend auf, da PyCharm eigene Tests ausführt manage.py.

stasdeep
quelle
1
Hatte dieses Problem beim Ausführen von Pycharm-Tests, obwohl ich beim Ausführen des Servers über Pycharm keine Einstellungen hinzufügen musste. Manuelles Hinzufügen von DJANGO_SETTINGS_MODULE zur Konfiguration für den Test, der für mich gelöst wurde.
PhoebeB
1
Außerdem ist es beim Bearbeiten von Konfigurationen hilfreich, die Vorlagen zu bearbeiten.
Yngve Høiseth
1
Einstellungen -> Sprachen & Frameworks -> Django -> Das Hinzufügen eines Werts unter Einstellungen wird automatisch DJANGO_SETTINGS_MODULEfür jede neue Django- und Django-Testlaufkonfiguration festgelegt.
Tobias Ernst
Zu Ihrer Information, ich habe genau das getan, was in dieser Lösung angegeben ist, und es hat beim ersten Mal nicht funktioniert. Es stellte sich heraus, PyCharm nicht retten sie das tat DJANGO_SETTINGS_MODULEersten Mal , als ich klickte Applydann OK. Ich habe es ein zweites Mal gemacht und jetzt funktioniert es. Scheint ein bisschen wie PyCharm-Verrücktheit.
MikeyE
Ich musste sicherstellen, dass ich die Importe korrekt deklariert habe: from <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.
Matthew Hegarty
18

Ich habe dieses bekommen, als ich es verwendet habe, ./manage.py shell dann habe ich es versehentlich aus dem Stammverzeichnis auf Projektebene importiert

# 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
quelle
im , meinen Fall musste ich ändern from fields import xzufrom .fields import x
daigorocub
13

Als Neuling bei Python3 finde ich, dass es sich möglicherweise um einen Importfehler anstelle eines Django-Fehlers handelt

falsch:

from someModule import someClass

richtig:

from .someModule import someClass

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:

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

Versuchen Sie, den Server auszuführen. Der Fehler sieht folgendermaßen aus

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

Wechsel userzu .user, Problem gelöst

rpstw
quelle
9
Willkommen bei stackoverflow! Ich bin gezwungen zu erwähnen, dass Ihre Antwort nichts mit der Frage des OP zu tun hat. Als Neuling sollten Sie vorsichtig sein, Lösungen vorzuschlagen, ohne zuvor deren Richtigkeit zu überprüfen. Aber bitte kommen Sie immer wieder und veröffentlichen Sie konkrete Antworten, wenn Sie können - danke!
Evadeflow
1
Ich wünschte, mehr Kommentare zu Stack wären wie deine Xeon Phil. Zu oft werden neue Benutzer von tollwütigen Kommentatoren vertrieben, die unglücklich sind, dass sie am ersten Tag keine Stack-Experten sind.
Slbox
1
Sie haben Recht, @evadeflow, meine erste Antwort sieht wirklich nicht verwandt aus. Ich versuche, die Antwort zu klären. Hoffe nur, dass die Antwort nützlich sein könnte.
RPSTW
In meinem Fall war es ein ähnliches Problem. 'from ..core.models import CommonInfo' musste 'from apps.core.models import CommonInfo' werden
user42488
Dies war mein Problem, das verdeckt war, weil es in zwei separaten Dateien auftrat. Verdammt, verschachtelte Importe! Verdammt, meine dumme Ablehnung der vernünftigen Änderungen von 2to3!
9999 Jahre
13

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.

from django.apps import AppConfig    

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

Ich habe diesen Fehler beim Importieren von Modellen in Tests erhalten, dh angesichts dieser Django-Projektstruktur:

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

in Datei, die test_models.pyich MyModelauf diese Weise importiert habe:

from models import MyModel

Das Problem wurde behoben, wenn es auf folgende Weise importiert wurde:

from myapp.models import MyModel

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.

Julius Caesar
quelle
juliocesar du bist ein champ. Vielen Dank. Das war ein lächerlicher Fehler.
Kirk
2
Ich habe länger gebraucht als erwartet, um das zu finden. Ich habe einen relativen Import in meiner Datei test.py verwendet. Habe den Fehler bei der Verwendung from .models import MyModel. Ändern, um from myapp.models import MyModeldas Problem zu beheben.
Mönch
@monkut gleich hier. Ich frage mich, warum das passiert. Ich benutze übrigens benutzerdefinierte Apps Ordner. "/ apps" im Projektstamm, dem Pfad hinzugefügt.
4

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:

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

Und alles, was ich getan habe, war, den Projektnamen vor meinem App-Namen wie folgt hinzuzufügen:

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

und das löste mein Problem und ich konnte den Makemigrations- und Migrationsbefehl danach ausführen! Viel Glück

ZaMy
quelle
3

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:

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

und in models/__init__.pyimportierte ich meine Modelle mit der Kurzsyntax:

    from .foo import *
    from .bar import *

In meiner Anwendung habe ich Modelle wie folgt importiert:

    from myapp.models import Foo, Bar

Dies verursachte das Django model doesn't declare an explicit app_labelbeim Laufen ./manage.py test.

Um das Problem zu beheben, musste ich explizit aus dem vollständigen Pfad importieren in models/__init__.py:

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

Das hat den Fehler behoben.

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

Inostia
quelle
Das war auch für mich das Problem. Vielen Dank!
Sam Creamer
3

In meinem Fall geschah dies, weil ich einen relativen Modulpfad in Projektebene verwendet urls.py , INSTALLED_APPSund apps.pyanstatt in der Projektwurzel verankert. dh absolute Modulpfade durchgehend und keine relativen Modulpfade + Hacks.

Egal wie sehr ich mit den Pfaden in INSTALLED_APPSund apps.pyin meiner App herumgespielt habe, ich konnte nicht beide bekommen runserverund pytestarbeiten, bis alle drei im Projektstamm verwurzelt waren.

Ordnerstruktur:

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

Mit dem Folgenden konnte ich ohne Probleme manage.py runservermit wsgi laufen und gunicorn und portalApp-Ansichten verwenden, aber pytest würde ModuleNotFoundError: No module named 'apps'trotz DJANGO_SETTINGS_MODULEkorrekter Konfiguration einen Fehler machen .

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')),
    ...
]

Das Ändern der App-Referenz in config / settings.py in biz_portal.apps.portal.apps.PortalConfigund PortalConfig.nameum biz_portal.apps.portaldie Ausführung von pytest zuzulassen (ich habe noch keine Tests für portalAnsichten), runserverwürde aber einen Fehler verursachen

RuntimeError: Die Modellklasse apps.portal.models.Business deklariert kein explizites app_label und befindet sich nicht in einer Anwendung in INSTALLED_APPS

Schließ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 sollte biz_portal.apps.portal.urls.

jbothma
quelle
Hacks mit relativem Pfad ......... Haben das Gleiche getan. Ihre Erkenntnisse haben mir sehr geholfen
zar3bski
2

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

manage.py makemigrations myapp

Als ich die Migrationen gelöscht und dann ausgeführt habe:

manage.py makemigrations

Der Fehler ist nicht aufgetreten und die Migrationen wurden erfolgreich generiert.

Cerin
quelle
Danke dir. Migrationen sind weiterhin frustrierend.
HashRocketSyntax
2

Ich hatte ein ähnliches Problem, konnte es jedoch lösen, indem ich das app_label mithilfe der Meta-Klasse in meiner Modellklasse explizit angab

class Meta:
    app_label  = 'name_of_my_app'
Benjamin Andoh
quelle
Danke Benjamin! In meinem Django-Projekt verwende ich Sphinx, um Dokumentation zu generieren, und die :: autoclass-Direktive gab den Fehler "app_label" aus, bis ich ihn wie von Ihnen vorgeschlagen zur Meta-Klasse des Modells hinzufügte.
Stefan Musarra
Ich bin froh, dass es bei Ihnen funktioniert hat
Benjamin Andoh
1

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:

  • Das Problem kam von der Verwendung python migrate.py startapp myAppaus meinem Projektstammordner und dem Verschieben von myApp in einen untergeordneten Ordner mitmv myApp myFolderWithApps/ .
  • Ich schrieb myApp.models und lief python migrate.py makemigrations. Alles ist gut gegangen.
  • Dann habe ich dasselbe mit einer anderen App gemacht, die Modelle aus myApp importierte. Kaboom! Ich bin auf diesen Fehler gestoßen, als ich Makemigrationen durchgeführt habe. Das lag daran, dass ich myFolderWithApps.myAppmeine 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.
  • Aber dann trat der Fehler immer wieder auf: Der Grund war, dass ich Migrationen hatte, bei denen versucht wurde, die Modelle mit dem falschen Pfad aus myApp zu importieren. Ich habe versucht, die Migrationsdatei zu korrigieren, bin aber an dem Punkt angelangt, an dem es einfacher war, die Datenbank zurückzusetzen und die Migrationen zu löschen, um von vorne zu beginnen.

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!

Harrouet
quelle
1

Ich habe einen ähnlichen Fehler beim Erstellen einer API in Django rest_framework.

RuntimeError: Die Modellklasse apps.core.models.University deklariert kein explizites> app_label und befindet sich nicht in einer Anwendung in INSTALLED_APPS.

Die Antwort von luke_aus hat mir geholfen, indem sie meine urls.py korrigiert hat

von

from project.apps.views import SurgeryView

zu

from apps.views import SurgeryView
Jade Dhangwattanotai
quelle
Für mich hatte ich es in einer Migration versteckt. Ich bin mir nicht sicher, wie das passiert ist, aber das Entfernen des Projektnamens / -pfads hat Probleme behoben.
Michael Thompson
1

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:

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

und später in der Datei hatte ich die Klassendefinition:

class MyFileStorage(FileSystemStorage):

In Django 2.2 muss ich jedoch FileSystemStoragebeim Importieren explizit auf die Klasse verweisen :

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

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.

user2641103
quelle
1

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

Jermaine Haughton
quelle
1

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.

James Bradbury
quelle
1

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

evanxg852000
quelle
1

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_labellöste den Fehler aus, da ich die neue App nicht hinzugefügt hatte INSTALLED_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 ...

djvg
quelle
Vielen Dank für diese Antwort, ich habe vergessen, meine .envDatei zu
beschaffen,
1

O ... 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

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

ich habe getan

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

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.

Rafael Santos
quelle
0

Ich habe diesen Fehler erhalten, nachdem ich das SECRET_KEYZiehen aus einer Umgebungsvariablen verschoben und vergessen habe, es beim Ausführen der Anwendung festzulegen. Wenn Sie so etwas in Ihrem habensettings.py

SECRET_KEY = os.getenv('SECRET_KEY')

Stellen Sie dann sicher, dass Sie die Umgebungsvariable tatsächlich festlegen.

ameier38
quelle
0

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

from ..api.serializers import AccountSerializer

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

Und in der Datei "Serializer":

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
quelle
0

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!

verpackt
quelle
0

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.

Schwarzes Loch Sonne
quelle
0

Für PyCharm-Benutzer: Ich hatte einen Fehler bei der Verwendung der nicht "sauberen" Projektstruktur.

War:

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

Jetzt:

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

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_MODULEVariablen festlegen und so weiter.

Hoffe es wird jemandem helfen. Prost.

Pavel Druzhinin
quelle
-1

Das Problem ist, dass:

  1. Sie haben Änderungen an Ihrer Modelldatei vorgenommen, diese jedoch noch nicht zur Datenbank hinzugefügt. Sie versuchen jedoch, Python manage.py runserver auszuführen.

  2. Führen Sie Python manage.py makemigrations aus

  3. Python manage.py migrieren

  4. Jetzt Python manage.py runserver und alles sollte in Ordnung sein.

Ken Edem
quelle