django - 如何解决“"django.core.exceptions.AppRegistryN

我已经将我的 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/

相关文章:

wordpress - 如何优化WP_Query(包括CPT和ACF)

jenkins - BlueOcean编辑器 "scm"输入什么

angular - Ionic 4 - 在平台硬件后退按钮 android 上关闭或关闭模态

c# - 502 Bad Gateway nginx/1.14.1 elasticbeanstalk

json - 如何从 yang 模块生成 JSON 模式?

java - 在非 View 或非 ViewModel 类中观察 LiveData

ios - 如果先前已加载某些网页,WKWebView 不会加载 .archive 文件

c# - C# 中 C++ 结构化绑定(bind)的模拟

react-native - 位于 "node_modules/web3-eth-accounts/

gcc - 从一个编译器版本到另一个编译器版本的符号重定位