在celery任务中使用Django模型

时间:2018-11-10 15:21:15

标签: python django-celery

我有一个用例,我需要在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__.pybackend/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任务的文件中?

0 个答案:

没有答案