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"
我正在开发一个 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"