我有 django 1.9
我用这个 instructions 安装了 allauth .但是运行迁移后出现以下错误:
./manage.py migrate
错误:
...
RuntimeError: Model class allauth.account.models.EmailAddress doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded.
请帮我解决这个问题。
请您参考如下方法:
我认为您缺少 allauth 特定的上下文处理器:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.i18n',
# Required by allauth template tags
"django.core.context_processors.request",
# allauth specific context processors
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount",
],
},
},
]
Django 站点框架是必需的,但您还应该在 INSTALLED_APPS 中添加 allauth 应用程序:
INSTALLED_APPS = (
... # here previous existing apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
# Login via Google as an exemple, you can choose facebook, twitter as you like
'allauth.socialaccount.providers.google',
)
我还建议设置以下参数来自定义授权过程:
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_VERIFICATION = "none"
SOCIALACCOUNT_QUERY_EMAIL = True
LOGIN_REDIRECT_URL = "/"
您可以找到有关可用 settings here 的更多信息.
