gpt4 book ai didi

python - AppRegistryNotReady : Apps aren't loaded yet

转载 作者:行者123 更新时间:2023-12-04 10:08:09 25 4
gpt4 key购买 nike

我正在尝试使用 Python shell 从数据库中查询数据。 settings.py包括:


import django
django.setup()

...

INSTALLED_APPS = [
'django.contrib.contenttypes',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'products.apps.ProductsConfig',
'users.apps.UsersConfig',
'crispy_forms',
]


当我打开 Python shell 时,我会这样做:
> from django.conf import settings
> settings.configure()

然后我尝试导入模型:
> from products.models import Product

但是,Python 返回:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.



我试过 adding django.setup() call in settings还有 moving this statement after INSTALLED_APPS .

编辑:与 django.setup()当我尝试运行命令时出现以下错误 runserver :

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

最佳答案

如您所见,django 尚未正确初始化,因此您收到此消息。

正如@davit-tovmasyan 提到的,有一个内置的 manage.py在正确的上下文中打开 django shell 的命令:

./manage.py shell

此外,如果您安装 django-extensions有一个非常有用的命令可以导入所有模型,以及常见的导入:
$ ./manage.py shell_plus

# Shell Plus Model Imports
from django.contrib.admin.models import LogEntry
from project.my_app.models import Model1, Model2
# ...etc, for all django and project apps
# Shell Plus Django Imports
from django.core.cache import cache
from django.conf import settings
# ...
>>> type your python here

如果您想运行自己的脚本,例如在 temp.py 中,然后就可以将 manage.py 代码复制到新文件中直接运行:
import os
import django

# these must be before any other imports of django app code/models
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
django.setup()

from my_app.models import Product
print(Product.objects.all())

# at the command line:
$> chmod +x temp.py
$> ./tmp.py

另外,还有 django-extensions run_script ,是 scripts您可以在其中使用 run() 添加简单的 Python 脚本的文件夹方法。

关于python - AppRegistryNotReady : Apps aren't loaded yet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61464852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com