Django 1.7 throws django.core.exceptions.AppRegistryNotReady: модели еще не загружены

Это трассировка на моей системе 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. 

И мой 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 Solutions collect form web for “Django 1.7 throws django.core.exceptions.AppRegistryNotReady: модели еще не загружены”

Это то, что разрешило это для нас и этих людей :

Наш проект начался с 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() 

Однако я не уверен, зачем мне это нужно. Комментарии будут оценены.

Проблема в вашем приложении регистрации. Кажется, django-registration вызывает 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() внутри (а не на уровне модуля), а в FK используйте что-то вроде:

 user = ForeignKey(settings.AUTH_USER_MODEL) 

BTW, вызов django.setup() не требуется в вашем файле manage.py , он вызывается для django.setup() в файле 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 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 

Моя находится в .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-cascade). Конечно, мне пришлось добавить плагин к INSTALLED_APPS. Но порядок здесь важен.

Поместить 'cmsplugin_cascade' до того, как 'cms' решит проблему.

установите django-registration-redux == 1.1 вместо django-registration, если вы используете django 1.7

Ваш manage.py является «неправильным»; Я не знаю, откуда у вас это получилось, но это не 1,7 manage.py – вы использовали какую-то фанк-сборку перед выпуском или что-то еще?

Сбросьте свой manage.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) 
  • Создавать канонический «родительский» продукт в Django Oscar программно
  • Writelines пишет строки без новой строки, просто заполняет файл ..
  • Сценарий Matlab не найден из django views.py
  • как добавить аннотационные данные в ответы на запрос ответа django-rest-framework?
  • Переопределить форму в администраторе Django
  • Какой API Python следует использовать с Mongo DB и Django
  • Разве Django поставляется с шаблонами аутентификации для использования с модулем django.contrib.auth?
  • Почему этот цикл не отображает обновленный счетчик объектов каждые пять секунд?
  • Использование fullCalendar в Django
  • Как сохранить массив строк в модели Django?
  • Django-models: использование поля из внешнего ключа
  • Python - лучший язык программирования в мире.