Обновление 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'.

Ответ 1

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

Ответ 2

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

import django
django.setup()

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

import django
django.setup()

from myapp.models import MyModel

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

Ответ 7

Для меня проблема возникла из-за того, что я импортировал приложение в 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

Ответ 8

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

'grappelli.dashboard',
'grappelli',

в файле INSTALLED_APPS

Ответ 9

Моя проблема: Джанго-реверсии >= 1.8.7, < 1,9

для django 1.9.7 вы должны использовать: Джанго-реверсии == 1.10.0

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

Правильный ответ здесь: fooobar.com/questions/125315/...

Ответ 10

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

Ответ 11

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

Ответ 12

Я поместил 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 внутри функции, и он начал работать. Функция должна быть вызвана после запуска сервера

Ответ 13

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

Ответ 14

Как уже говорили другие, это может быть вызвано тем, что вы не установили приложение, указанное в 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

Ответ 15

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

pip install django==1.8.18

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

Ответ 16

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

Ответ 17

Получил эту ошибку при попытке доступа к объектам модели в 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 до того, как приложение загрузило класс модели, вызвала ошибку для меня.

Ответ 18

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

Ответ 19

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

source scripts/activate

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

Ответ 20

Если ваши файлы settings.py заполняются правильно, вы можете попытаться получить файлы manage.py, перейдите в метод danjgo.setup() в основном методе. Затем запустите manage.py, наконец, снова запустите проект, проблема может исчезнуть.

Ответ 21

В модуле "admin" вашего пакета приложений зарегистрируйте все базы данных, созданные в модуле "models" пакета.

Предположим, что у вас есть класс базы данных, определенный в модуле "models" следующим образом:

class myDb1(models.Model):
    someField= models.Charfiled(max_length=100)

поэтому вы должны зарегистрировать это в модуле администратора как:

from .models import myDb1
admin.site.register(myDb1)

Я надеюсь, что это устранит ошибку.