Джанго 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

577   10  

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 User  

to::

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

Comments

    Ничего не найдено.