Ответ 1
У меня была пользовательская функция, написанная на одном из моих файлов __init__.py
. Это вызвало ошибку. Когда я переместил эту функцию из __init__.py
, она сработала.
При обновлении до 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'.
У меня была пользовательская функция, написанная на одном из моих файлов __init__.py
. Это вызвало ошибку. Когда я переместил эту функцию из __init__.py
, она сработала.
Попробуйте добавить эти строки в начало файла настроек:
import django
django.setup()
И если это не поможет вам попытаться удалить сторонние приложения из списка установленных приложений один за другим.
Эта ошибка может возникать, когда вы добавляете приложение в INSTALLED_APPS
в файле settings.py
но у вас не установлено это приложение на вашем компьютере. У вас есть два решения:
Install
это приложение с помощью менеджеров пакетов, таких как pip
в Ubuntusettings.py
Эта ошибка также может возникнуть, если вы находитесь не в своей virtual environment
которую вы, возможно, создали для своего проекта.
В моем случае ошибка произошла, когда я сделал python manage.py makemigrations
на Django 2.0.6
.
Решением было запустить python manage.py runserver
и посмотреть фактическую ошибку (которая была просто отсутствующей переменной среды).
Попробуйте удалить весь settings.LOGGING
dictConfig и перезапустить сервер. Если это работает, перепишите настройку в соответствии с документацией v1.9.
https://docs.djangoproject.com/en/1.9/topics/logging/#examples
Моя проблема заключалась в том, что я пытался импортировать модель Django перед вызовом django.setup()
Это сработало для меня:
import django
django.setup()
from myapp.models import MyModel
Вышеуказанный скрипт находится в корневой папке проекта.
Для меня проблема возникла из-за того, что я импортировал приложение в 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
Для меня комментирование
'grappelli.dashboard',
'grappelli',
в файле INSTALLED_APPS
Моя проблема: Джанго-реверсии >= 1.8.7, < 1,9
для django 1.9.7 вы должны использовать: Джанго-реверсии == 1.10.0
Я был обновлен django-cms 3.2 до 3.3 и нашел его, комментируя приложения, а затем раскомментировав назад.
Правильный ответ здесь: fooobar.com/questions/125315/...
Эта проблема также наблюдается для непоследовательных настроек .py для неправильной записи INSTALLED_APPS, проверьте, правильно ли вы включили приложения и разделили ",".
Когда я меняю версию django на 1.9, ошибка не возникает. pip uninstall django pip install django==1.9
Я поместил 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
внутри функции, и он начал работать. Функция должна быть вызвана после запуска сервера
В моем случае один из моих параметров, "CORS_ORIGIN_WHITELIST", был установлен в файле settings.py, но не был доступен в моем файле .env. Поэтому я предлагаю вам проверить ваши настройки, особенно те, которые связаны с .env
Как уже говорили другие, это может быть вызвано тем, что вы не установили приложение, указанное в 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
Я перепробовал кучу вещей, но только понижение Django до 1.8.18 устранило эту проблему для меня:
pip install django==1.8.18
Это одно из установленных приложений, которое выходит из строя, но я не смог найти какое.
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()
Получил эту ошибку при попытке доступа к объектам модели в 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
до того, как приложение загрузило класс модели, вызвала ошибку для меня.
Поздно к партии, но grappelli также послужил причиной моей ошибки. Я посмотрел совместимую версию на pypi и исправил ее для меня.
Попробуйте активировать виртуальную среду. В моем случае, используя инструмент командной строки git:
source scripts/activate
Решает мою проблему.
Если ваши файлы settings.py заполняются правильно, вы можете попытаться получить файлы manage.py, перейдите в метод danjgo.setup() в основном методе. Затем запустите manage.py, наконец, снова запустите проект, проблема может исчезнуть.
В модуле "admin" вашего пакета приложений зарегистрируйте все базы данных, созданные в модуле "models" пакета.
Предположим, что у вас есть класс базы данных, определенный в модуле "models" следующим образом:
class myDb1(models.Model):
someField= models.Charfiled(max_length=100)
поэтому вы должны зарегистрировать это в модуле администратора как:
from .models import myDb1
admin.site.register(myDb1)
Я надеюсь, что это устранит ошибку.