Ceci est la traceback sur mon système Windows.
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.
Et mon manage.py ressemble à ceci:
import os
import sys
import Django
if __== "__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)
Je reçois cette erreur lorsque j'essaie d'utiliser enregistrement app dans Django 1.7
C'est ce qui a résolu le problème pour nous et ces gens :
Notre projet a démarré avec Django 1.4, nous sommes passés à 1,5 puis à 1,7. Notre wsgi.py ressemblait à ceci:
import os
from Django.core.handlers.wsgi import WSGIHandler
os.environ['Django_SETTINGS_MODULE'] = 'myapp.settings'
application = WSGIHandler()
Lorsque j'ai mis à jour le gestionnaire WSGI de style 1.7:
import os
from Django.core.wsgi import get_wsgi_application
os.environ['Django_SETTINGS_MODULE'] = 'myapp.settings'
application = get_wsgi_application()
Tout fonctionne maintenant.
L'exécution de ces commandes a résolu mon problème (crédit de cette réponse ):
import Django
django.setup()
Cependant, je ne sais pas pourquoi j'ai besoin de ça. Des commentaires seraient appréciés.
Le problème est dans votre application d'enregistrement. Il semble que Django-registration appelle get_user_module()
dans models.py
au niveau du module (lorsque les modèles sont encore chargés par le processus d'enregistrement de l'application). Cela ne fonctionnera plus:
try:
from Django.contrib.auth import get_user_model
User = get_user_model()
except ImportError:
from Django.contrib.auth.models import User
Je changerais ce fichier de modèles en appelant uniquement get_user_model()
à l'intérieur des méthodes (et non au niveau du module) et dans les FK, utilisez quelque chose comme:
user = ForeignKey(settings.AUTH_USER_MODEL)
En passant, l'appel à Django.setup()
ne devrait pas être requis dans votre fichier manage.py
, il est appelé pour vous dans execute_from_command_line
. ( source )
Juste rencontré le même problème. Le problème vient de Django-registration
incompatible avec le modèle d'utilisateur Django 1.7.
Une solution simple consiste à changer ces lignes de code, sur votre module Django-registration
installé ::
try:
from Django.contrib.auth import get_user_model
User = get_user_model()
except ImportError:
from Django.contrib.auth.models import User
à::
from Django.conf import settings
try:
from Django.contrib.auth import get_user_model
User = settings.AUTH_USER_MODEL
except ImportError:
from Django.contrib.auth.models import User
Le mien est à .venv/local/lib/python2.7/site-packages/registration/models.py
(virtualenv)
Cela fonctionne pour moi pour Django 1.9. Le script Python à exécuter se trouvait à la racine du projet Django.
import Django
os.environ.setdefault("Django_SETTINGS_MODULE", "PROJECT_NAME.settings")
Django.setup()
from APP_NAME.models import *
Définissez PROJECT_NAME et APP_NAME sur le vôtre.
Une autre option est que vous ayez une entrée en double dans INSTALLED_APPS. Cela a jeté cette erreur pour deux applications différentes que j'ai testées. Apparemment, ce n'est pas quelque chose que Django cherche, mais qui est assez stupide pour mettre la même application deux fois dans la liste. Moi, c'est qui.
installez Django-registration-redux == 1.1 à la place de Django-registration, si vous utilisez Django 1.7
Avez-vous un environnement virtuel Python que vous devez entrer avant de lancer manage.py?
J'ai moi-même rencontré cette erreur, et c'était le problème.
J'ai rencontré ce problème lorsque j'ai utilisé djangocms et ajouté un plugin (dans mon cas: djangocms-cascade). Bien sûr, je devais ajouter le plugin à INSTALLED_APPS. Mais l'ordre est ici important.
Placer 'cmsplugin_cascade' avant 'cms' a résolu le problème.