Dies ist der Traceback auf meinem Windows-System.
Traceback (most recent call last):
File "D:\AMD\workspace\steelrumors\manage.py", line 9, in <module>
django.setup()
File "D:\AMD\Django\django-django-4c85a0d\django\__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 108, in populate
app_config.import_models(all_models)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\config.py", line 197, in import_models
self.models_module = import_module(models_module_name)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Python27\lib\site-packages\registration\models.py", line 15, in <module>
User = get_user_model()
File "D:\AMD\Django\django-django-4c85a0d\django\contrib\auth\__init__.py", line 135, in get_user_model
return django_apps.get_model(settings.AUTH_USER_MODEL)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 199, in get_model
self.check_models_ready()
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 131, in check_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
Und meine manage.py sieht so aus:
import os
import sys
import django
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "steelrumors.settings")
django.setup()
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Ich erhalte diesen Fehler, wenn ich versuche, die Registrierungs- App in Django 1.7 zu verwenden
django-django-4c85a0d
;4c85a0d
zufällig ein (nicht stabiler) Django-Commit-Hash. Ich glaube nicht, dass Sie tatsächlich Django 1.7 verwenden (siehe meine Antwort)venv
. Das Neuerstellen des venv-Verzeichnisses hat es für mich behoben. `` `mv venv venv_old virtualenv venv source ./venv/bin/activate pip install -r Anforderungen.txt` ``docker-compose exec ...
. Das Problem war, dass ich die erforderlichen Umgebungsvariablen nicht an den Befehl docker-compose exec übergeben habe .Antworten:
Dies hat es für uns und diese Leute gelöst :
Unser Projekt begann mit Django 1.4, wir gingen zu 1.5 und dann zu 1.7. Unsere wsgi.py sah folgendermaßen aus:
Als ich auf den WSGI-Handler im 1.7-Stil aktualisiert habe:
Alles funktioniert jetzt.
quelle
wsgi.py
Datei enthält niemals eineimport sys
. Nicht in 1.4, nicht in 1.5 und nicht in 1.7. Wenn Sie es dort hatten, wurde es manuell von jemandem hinzugefügt - es wird nicht von django-admin startproject hinzugefügt.Das Ausführen dieser Befehle hat mein Problem gelöst (Gutschrift für diese Antwort ):
Ich bin mir jedoch nicht sicher, warum ich das brauche. Kommentare wären willkommen.
quelle
Das Problem liegt in Ihrer Registrierungs-App. Es scheint , django-Registrierung Anrufe
get_user_module()
inmodels.py
bei einer Modulebene (bei Modellen nach wie vor durch die Anwendung Registrierungsprozess geladen werden). Dies wird nicht mehr funktionieren:Ich würde diese
get_user_model()
Modelldatei so ändern, dass sie nur interne Methoden (und nicht auf Modulebene) aufruft und in FKs Folgendes verwendet:Übrigens, der Aufruf von
django.setup()
sollte in Ihrermanage.py
Datei nicht erforderlich sein , er wird für Sie aufgerufenexecute_from_command_line
. ( Quelle )quelle
if __name__ == '__main__':
funktioniert für mich, aber ich weiß nicht, ob es eine gute Lösung ist.Ich bin gerade auf das gleiche Problem gestoßen. Das Problem liegt an der
django-registration
Inkompatibilität mit dem Django 1.7-Benutzermodell.Eine einfache Lösung besteht darin, diese Codezeilen in Ihrem installierten
django-registration
Modul zu ändern :zu::
Meins ist bei
.venv/local/lib/python2.7/site-packages/registration/models.py
(virtualenv)quelle
django-registration-redux
Das Problem wurde für mich behoben (ich hatte genau den gleichen Stack wie das OP)Dies funktioniert bei mir für Django 1.9. Das auszuführende Python-Skript befand sich im Stammverzeichnis des Django-Projekts.
Setzen Sie PROJECT_NAME und APP_NAME auf Ihre
quelle
Eine andere Option ist, dass Sie einen doppelten Eintrag in INSTALLED_APPS haben. Das warf diesen Fehler für zwei verschiedene Apps, die ich getestet habe. Anscheinend ist es nicht etwas, wonach Django sucht, aber wer ist dann albern genug, um dieselbe App zweimal in die Liste aufzunehmen? Ich, das ist wer.
quelle
Haben Sie eine virtuelle Python-Umgebung, die Sie eingeben müssen, bevor Sie manage.py ausführen können?
Ich bin selbst auf diesen Fehler gestoßen, und das war das Problem.
quelle
Ich bin auf dieses Problem gestoßen, als ich Djangocms verwendet und ein Plugin hinzugefügt habe (in meinem Fall: Djangocms-Kaskade). Natürlich musste ich das Plugin zu INSTALLED_APPS hinzufügen. Aber die Reihenfolge ist hier wichtig.
Das Platzieren von 'cmsplugin_cascade' vor 'cms' löste das Problem.
quelle
cms, mptt, menus, sekizai, filer, easy_thumbnails
Installieren Sie Django-Registrierung-Redux == 1.1 anstelle von Django-Registrierung, wenn Sie Django 1.7 verwenden
quelle
./manage.py migrate
Dies löste mein Problem
quelle
Dein
manage.py
ist "falsch"; Ich weiß nicht, woher du es hast, aber das ist keine 1.7manage.py
- hast du einen funky Pre-Release-Build verwendet oder so?Setzen Sie Ihr Gerät
manage.py
wie unten beschrieben auf das Konventionelle zurück und die Dinge sollten einfach funktionieren:quelle