我有一个用例,我需要在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
与芹菜相关的文件(backend/backend/__init__.py
和backend/backend/celery.py
)的所有内容均与official docs中指示的内容完全相同。
但是一旦将行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
任务的文件中?