gpt4 book ai didi

django - 如何解决“"django.core.exceptions.AppRegistryNotReady: Apps aren' t 已加载”的问题?

转载 作者:行者123 更新时间:2023-12-05 07:21:09 34 4
gpt4 key购买 nike

我已经将我的 django webapp 部署到我的 heroku 服务器并且它工作正常,直到我添加了一个 websocket 连接,该连接在创建模型对象后立即在单独的 url 中显示该模型对象的内容。为此,我使用了 Django channel 和托管在 redislabs 上的 redis 服务器。要运行 asgi 应用程序,我尝试使用 daphne 服务器,但是当我尝试使用以下命令运行 daphne 服务器时:$daphne smartResturant.asgi:channel_layer --port 8888, 它说
“django.core.exceptions.AppRegistryNotReady:应用程序尚未加载”

我的asgi.py

import os
import django
from smartResturant.routing import get_default_application


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smartResturant.settings")
django.setup()
application = get_default_application()

我的设置.py

ASGI_APPLICATION = 'smartResturant.routing.application'
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {

"hosts": ['redis://:xxxxxxxx@redis-13131.c85.us-east-1-2.ec2.cloud.redislabs.com:13131']
},

},
}

当我在本地运行而不使用 daphne 服务器时,它工作正常。但是我发现要在托管服务器上运行基于 asgi 的应用程序,您必须使用 daphne 服务器,而我无法运行它。任何帮助将不胜感激!

最佳答案

当您在 settings.py 文件的 INSTALLED_APPS 中添加一个应用程序但您的计算机上没有安装该应用程序时,可能会发生此错误。你有两个解决方案:

  1. 使用 django 中的 pip 等包管理器安装该应用
  2. 或者在 settings.py 文件中注释掉安装的应用

如果您不在您可能为项目创建的虚拟环境中,也可能会出现此错误。

当您运行 python manage.py runserver 等命令时,django 会使用 DJANGO_SETTINGS_MODULE 环境变量自动为您运行 django.setup。所以 views.py 中的代码可以访问模型,因为 django 确保在导入 View 之前调用 django.setup。由于您将 shell 脚本作为简单的 python 文件运行,因此您必须手动调用 django.setup。

关于django - 如何解决“"django.core.exceptions.AppRegistryNotReady: Apps aren' t 已加载”的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57010249/

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