Django 信号注册抛出不正确的 AppnameConfig.name 错误

Django Signal Registration Throws Incorrect AppnameConfig.name Error

我正在开发一个 Django 应用程序 1.11,例如我希望在用户注册后发送电子邮件,所以我决定使用信号发送电子邮件,而不是将信号处理程序和注册代码放在模态文件中,我在我的应用程序文件夹中创建了 signals.py,当我尝试在 CommonConfig 中的 ready 方法上导入 signals.py 时,但出现如下错误

django.core.exceptions.ImproperlyConfigured: Cannot import 'common'. Check that 'apps.common.apps.CommonConfig.name' is correct.

我的项目文件夹结构看起来像

/myproject /myproject /apps /common /configs /settings /static /templates

安装的应用程序看起来像关注

INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'storages', 'rest_framework', 'apps.common.apps.CommonConfig',]

和我的 apps\common\apps.py 看起来像 follow

`
from django.apps import AppConfig
class CommonConfig(AppConfig):
  name = "common"

`

我在这里犯了什么错误,如何使用 django 注册信号?

name 属性是完整的 Python 路径,因此在您的情况下它应该是 "apps.common",而不是 "common"

class CommonConfig(AppConfig):
    name = "apps.common"