python - 在 celery 任务中使用 django 模型
问题描述
我有一个用例,我需要在标准项目的文件中导入一些django
模型。celery.py
django-celery
我的项目如下所示:
|-- backend
| |-- backend
| | |-- __init__.py
| | |-- celery.py
| | |-- settings.py
| | |-- urls.py
| | `-- wsgi.py
| |-- bobbers
| | |-- __init__.py
| | |-- admin.py
| | |-- apps.py
| | |-- models.py
| | |-- serializers.py
| | |-- tests.py
| | |-- urls.py
| | `-- views.py
| |-- manage.py
| |-- requirements.txt
celery 相关文件(backend/backend/__init__.py
和)的所有内容与官方文档backend/backend/celery.py
中的完全一致。
但是,一旦我将该行添加import bobbers.models as bobber_models
到我的文件中,我就会通过以下堆栈跟踪celery.py
得到臭名昭著的错误:AppRegistryNotReady
File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 87, in __new__
app_config = apps.get_containing_app_config(module)
File "/usr/local/lib/python3.7/site-packages/django/apps/registry.py", line 249, in get_containing_app_config
self.check_apps_ready()
File "/usr/local/lib/python3.7/site-packages/django/apps/registry.py", line 132, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
不用说,如果我删除导入,一切顺利。
那么如何django
在编写celery
任务的同一个文件中安全地导入模型呢?
解决方案
推荐阅读
- php - 如何在一个 JSON 中获取两个查询以显示在 Chart.js 折线图上?
- python - Deap 运行时间给出了关键错误的错误
- c++ - 使用新运算符 c ++ 的静态绑定
- html - 如何在css中获取元素
- c - 实时嵌入式c代码中3个变量之间的依赖关系
- php - 使用 php-ews 获取 ms 交换服务器版本
- r - 如何在 r 中按月创建具有聚合值的新数据集?
- r - 根据最后一个已知值扩展数据框
- c# - Azure ServiceBusConnectionStringBuilder 中的“实体路径”是什么?
- javascript - Google Cloud Functions:尝试使用 ES6 时部署失败