我有一个应用程序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
可以只是具有该名称的空白文件。