使用 AppConfig 导入信号是行不通的 Django 2.08



我有一个应用程序companies。在应用程序内部有一个名为signals.py的文件,其中包含以下代码:

post_save.connect(update_descendants, sender=Company)

在公司内部 apps.py 我有:

class CompaniesConfig(AppConfig):
name = 'apps.companies'
def ready(self):
from . import signals

但信号不会被导入/调用。

如果我在 models.py 中导入文件,它可以工作,但它会产生循环导入问题,我需要在函数内部导入而不是顶部。

结构:

- companies
-apps
-models
-signals

为什么应用程序配置不起作用?

如果你使用的是自定义的 AppConfig 类,那么你需要告诉 Django 关于它的信息。它不会自动发现。在 Django 设置文件中引用如下:

INSTALLED_APPS [
....
"companies.apps.CompaniesConfig",
....
]

你需要在app的init中添加appconfig.py:

default_app_config = 'apps.companies.CompaniesConfig'

这与 AppConfig 中的 ready(( 一起,我看到您已经在 apps.py

您可能需要将__init__.py文件添加到公司目录中...

__init__.py可以只是具有该名称的空白文件。

最新更新