Skip to main content
 首页 » 编程设计

python之Django 1.9 和 allauth 0.24.1

2024年08月23日3052php

我有 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 的更多信息.