it-roy-ru.com

Обновление Django до версии 1.9 "AppRegistryNotReady: приложения еще не загружены".

При обновлении до Django 1.9 с 1.8 я получил эту ошибку. Я проверил ответы на похожие вопросы, но не думал, что это проблема каких-либо сторонних пакетов или приложений.

Traceback (most recent call last):
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 342, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 176, in fetch_command
commands = get_commands()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/utils/lru_cache.py", line 100, in wrapper
result = user_function(*args, **kwds)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 71, in get_commands
for app_config in reversed(list(apps.get_app_configs())):
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/apps/registry.py", line 137, in get_app_configs
self.check_apps_ready()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/Django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
Django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Я изменил Установленные приложения для Django.contrib.auth.

60
Kishore K

Я бы сделал пользовательскую функцию, написанную на одном из моих файлов __init__.py моделей. Это было причиной ошибки. Когда я переместил эту функцию из __init__.py, она работала.

21
Kishore K

Попробуйте добавить эти строки в начало вашего файла настроек:

import Django
django.setup()

И если это не поможет, попробуйте удалить сторонние приложения из списка установленных приложений один за другим.

81
inlanger

Эта ошибка возникает, когда вы добавляете приложение в INSTALLED_APPS в файле settings.py, но у вас не установлено это приложение на вашем компьютере. У вас есть два решения:

  1. Установите это приложение, используя менеджеры пакетов, такие как pip в Ubuntu.
  2. Или закомментируйте это установленное приложение в файле settings.py

Эта ошибка также может возникнуть, если вы находитесь не в своей виртуальной среде, которую вы, возможно, создали для своего проекта.

7
Amrit

В моем случае ошибка произошла, когда я сделал python manage.py makemigrations на Django 2.0.6

Решением было запустить python manage.py runserver и увидеть фактическую ошибку (которая была просто отсутствующей переменной среды).

6
Pavel Vergeev

Попробуйте удалить весь settings.LOGGING dictConfig и перезапустить сервер. Если это работает, перепишите настройку в соответствии с документацией v1.9.

https://docs.djangoproject.com/en/1.9/topics/logging/#examples

5
pragmar

Для меня проблема возникла из-за того, что я импортировал приложение в INSTALLED_APPS, которое само импортировало модель из файла __init__.py

Я имел :

settings.py

INSTALLED_APPS = [
    ...
    'myapp',
    ...
]

myapp.__init__.py

from Django.contrib.sites.models import Site

комментирование import models в myapp.__init__.py сделало это:

# from Django.contrib.sites.models import Site
3
Albyorix

Для меня комментирование

'grappelli.dashboard',
'grappelli',

в INSTALLED_APPS работал

2
algometrix

Моя проблема заключалась в том, что я пытался импортировать модель Django перед вызовом Django.setup()

Это сработало для меня:

import Django
django.setup()

from myapp.models import MyModel

Вышеуказанный скрипт находится в корневой папке проекта.

2
M3RS

Когда я меняю версию Django на 1.9, не возникает ошибка . pip uninstall Django pip install Django==1.9

1
admin

Моя проблема была: Django-reversion> = 1.8.7, <1.9

для Django 1.9.7 вы должны использовать: Django-reversion == 1.10.0

Я обновил Django-cms 3.2 до 3.3 и нашел его, комментируя приложения, а затем комментируя их обратно.

Правильный ответ здесь: https://stackoverflow.com/a/34040556/2837890

1
Anshik

Django.setup () в верхней части не будет работать, пока вы явно запускаете скрипт. Моя проблема решена, когда я добавил это в нижней части файла настроек

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
if BASE_DIR not in sys.path:
    sys.path.append(BASE_DIR)
os.environ['Django_SETTINGS_MODULE'] =  "igp_lrpe.settings"
os.environ.setdefault("Django_SETTINGS_MODULE", "igp_lrpe.settings")
import Django
django.setup()
0
Arup Barman

Получил эту ошибку при попытке доступа к объектам модели в apps.py:

class QuizConfig(AppConfig):
name = 'quiz'

def ready(self):
    print('===============> Django just started....')
    questions_by_category = Question.objects.filter(category=2) # <=== Guilty line of code.

Попытка доступа к Question до того, как приложение загрузило класс модели, вызвала ошибку для меня.

0
ojonugwa ochalifu

В моем случае одна из моих настроек, «CORS_Origin_WHITELIST», была установлена ​​в файле settings.py, но не была доступна в моем файле .env. Поэтому я предлагаю вам проверить ваши настройки, особенно те, которые связаны с .env

0
medobills

Я перепробовал множество вещей, но только понижение Django до 1.8.18 устранило эту проблему для меня:

pip install Django==1.8.18

Это одно из установленных приложений, которое выходит из строя, но я не смог найти какое.

0
oriadam

Эта проблема также наблюдается для несоответствующих settings.py для неправильной записи INSTALLED_APPS, проверьте, правильно ли вы включили приложения и разделены ли ",".

0
Waykos

Опоздал на вечеринку, но причиной моей ошибки также была grappelli. Я посмотрел совместимую версию на Pypi, и это исправило это для меня.

0
lslaz

Попробуйте активировать виртуальный env . В моем случае, используя инструмент командной строки git: 

source scripts/activate

Решает мою проблему.

0
Stephen Mwangi Wanjohi

Я поместил импорт User в файл settings для управления токеном оставшегося вызова вот так 

# settings.py
from Django.contrib.auth.models import User
def jwt_get_username_from_payload_handler(payload):
   ....

JWT_AUTH = {
    'JWT_PAYLOAD_GET_USERNAME_HANDLER': jwt_get_username_from_payload_handler,
    'JWT_PUBLIC_KEY': PUBLIC_KEY,
    'JWT_ALGORITHM': 'RS256',
    'JWT_AUDIENCE': API_IDENTIFIER,
    'JWT_ISSUER': JWT_ISSUER,
    'JWT_AUTH_HEADER_PREFIX': 'Bearer',
}
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
       'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    ),
}

Потому что в этот момент Django libs еще не готовы. Поэтому я поместил import внутри функции, и она начала работать. Функция должна быть вызвана после запуска сервера 

0
Thai Tran

Как уже говорили другие, это может быть вызвано тем, что вы не установили приложение, указанное в INSTALLED_APPS.

В моем случае manage.py пытался зарегистрировать исключение, что привело к попытке его рендеринга, который не удался из-за того, что приложение еще не было инициализировано. Закомментировав предложение except в manage.py, исключение было отображено без специального рендеринга, что позволило избежать ошибочной ошибки.

# Temporarily commenting out the log statement.
#try:
    execute_from_command_line(sys.argv)
#except Exception as e:
#    log.error('Admin Command Error: %s', ' '.join(sys.argv), exc_info=sys.exc_info())
#    raise e
0
John Lehmann