Джанго 1.7 бросает Джанго.ядро.исключения.AppRegistryNotReady: модели еще не загружены
это трассировка в моей системе windows.
Traceback (most recent call last):
File "D:AMDworkspacesteelrumorsmanage.py", line 9, in <module>
django.setup()
File "D:AMDDjangodjango-django-4c85a0ddjango__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "D:AMDDjangodjango-django-4c85a0ddjangoappsregistry.py", line 108, in populate
app_config.import_models(all_models)
File "D:AMDDjangodjango-django-4c85a0ddjangoappsconfig.py", line 197, in import_models
self.models_module = import_module(models_module_name)
File "C:Python27libimportlib__init__.py", line 37, in import_module
__import__(name)
File "C:Python27libsite-packagesregistrationmodels.py", line 15, in <module>
User = get_user_model()
File "D:AMDDjangodjango-django-4c85a0ddjangocontribauth__init__.py", line 135, in get_user_model
return django_apps.get_model(settings.AUTH_USER_MODEL)
File "D:AMDDjangodjango-django-4c85a0ddjangoappsregistry.py", line 199, in get_model
self.check_models_ready()
File "D:AMDDjangodjango-django-4c85a0ddjangoappsregistry.py", line 131, in check_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
и мой manage.py выглядит так:
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)
Я получаю эту ошибку, когда я пытаюсь использовать Регистрация приложение в Django 1.7
10 ответов:
это то, что решило его для нас и эти люди:
наш проект начался с Django 1.4, мы перешли на 1.5, а затем на 1.7. Наши wsgi.py выглядело это так:
import os from django.core.handlers.wsgi import WSGIHandler os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' application = WSGIHandler()когда я обновил обработчик WSGI стиля 1.7:
import os from django.core.wsgi import get_wsgi_application os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' application = get_wsgi_application()все работает теперь.
запуск этих команд решил мою проблему (кредит ответ):
import django django.setup()однако я не уверен, зачем мне это нужно. Комментарии будут оценены.
проблема в вашем приложении регистрации. Кажется Джанго-Регистрация звонит
get_user_module()наmodels.pyна уровне модуля (когда модели еще загружаются в процессе оформления заявки). Это больше не будет работать:try: from django.contrib.auth import get_user_model User = get_user_model() except ImportError: from django.contrib.auth.models import UserЯ бы изменил этот файл моделей только на вызов
get_user_model()внутри методов (а не на уровне модуля) и в FKs использовать что-то вроде:user = ForeignKey(settings.AUTH_USER_MODEL)кстати, звонок на
django.setup()не должно требоваться в вашемmanage.pyфайл, он вызван для вас вexecute_from_command_line. (источник)
просто столкнулся с той же проблемой. Проблема в том, что
django-registrationнесовместимо с моделью пользователя django 1.7.простое исправление состоит в том, чтобы изменить эти строки кода, на вашем установленном
django-registrationмодуль::try: from django.contrib.auth import get_user_model User = get_user_model() except ImportError: from django.contrib.auth.models import Userto::
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шахты составляет
.venv/local/lib/python2.7/site-packages/registration/models.py(virtualenv)
это работает для меня для Django 1.9 . Скрипта Python для выполнения был в корне проекта Django.
import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PROJECT_NAME.settings") django.setup() from APP_NAME.models import *установите PROJECT_NAME и APP_NAME для вашего
другой вариант заключается в том, что у вас есть дубликат записи в INSTALLED_APPS. Это вызвало эту ошибку для двух разных приложений, которые я тестировал. По-видимому, это не то, что проверяет Django, но тогда кто достаточно глуп, чтобы поместить одно и то же приложение в список дважды. Я, вот кто.
есть ли у вас виртуальная среда Python, которую необходимо ввести перед запуском manage.py?
Я сам столкнулся с этой ошибкой, и в этом была проблема.
Я столкнулся с этой проблемой, когда я использую djangocms и добавил плагин (в моем случае: djangocms-каскад). Конечно, мне пришлось добавить плагин к INSTALLED_APPS. Но порядок здесь важен.
на месте cmsplugin_cascade' до ' cms ' решил проблему.
установите django-registration-redux= = 1.1 вместо django-registration, если вы используете django 1.7
код
manage.pyэто "неправильно"; я не знаю, откуда вы его взяли, но это не 1.7manage.py- вы использовали какую-то фанковую сборку перед релизом или что-то еще?сбросить
manage.pyк обычному, как показано ниже, и все должно просто работать:#!/usr/bin/env python import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)
Comments