我在django-allauth面临一个问题。
我为localhost:9000/admin/
配置了以下详细信息
socialapp。
提供商: 名称: 客户ID: 应用程序ID或使用者密钥 键: 秘密:等等。
我设置了SITE_ID = 2(因为我将默认站点example.com更改为localhost:9000)
In setting.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'uni_form',
'allauth',
'allauth.account',
'allauth.socialaccount',
'bootstrapform',
# 'allauth.socialaccount.providers.twitter',
# 'allauth.socialaccount.providers.openid',
'allauth.socialaccount.providers.facebook',
)
SOCIALACCOUNT_PROVIDERS = \
{ 'facebook':
{ 'SCOPE': ['email', 'publish_stream'],
'AUTH_PARAMS': { 'auth_type': 'reauthenticate' },
'METHOD': 'oauth2' ,
'LOCALE_FUNC': 'path.to.callable'} }
现在我正在使用网址http://localhost:9000/accounts/facebook/login
我收到错误:SocialApp matching query does not exist.
请帮我解决一下我在这里做错了什么。
答案 0 :(得分:48)
使用Django管理员,您需要创建一个SocialApp
列出您的Facebook应用凭据。确保此应用已附加到正确的网站(如django.contrib.sites.models.Site
)。
在您的情况下,需要{id}为django.contrib.sites.models.Site
的实例(检查网站管理员),该实例列为SocialApp
的网站。
如果SocialApp
丢失,或者已创建但未附加到与settings.SITE_ID
匹配的网站,则allauth
不知道要选择的应用,导致您在上面列出的错误消息。
答案 1 :(得分:5)
答案 2 :(得分:1)
当我在settings.py中放入SITE_ID = 1
时,显示了此错误,但是当我将其更改为2
-> SITE_ID = 2
答案 3 :(得分:1)