Django:SocialApp匹配查询不存在

mas*_*iny 26 django django-allauth

我在django-allauth面临一个问题.

我配置localhost:9000/admin/ 了以下详细信息

socialapp.

provider:Name:Client id:App ID,或consumer key Key:Secret:etc.

我设置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'} }
Run Code Online (Sandbox Code Playgroud)

现在我正在上网 http://localhost:9000/accounts/facebook/login

我收到错误: SocialApp matching query does not exist.

请帮我解决一下我在这里做错了什么.

pen*_*rsr 54

使用Django管理员,您需要创建一个SocialApp列出您的Facebook应用程序凭据.确保此应用程序已附加到正确的站点(如,django.contrib.sites.models.Site).

在您的情况下,需要有一个django.contrib.sites.models.Siteid = 2 的实例(检查网站管理员),该实例被列为网站SocialApp.

如果SocialApp缺少任何一个,或者它已创建但未附加到与您匹配的站点settings.SITE_ID,allauth则不知道要选择哪个应用程序,从而导致您在上面列出的错误消息.

  • 我无法让管理面板显示我的SITE的id,所以我将它加载到一个shell中:`来自django.contrib.sites.models导入Site`并做了一个`Site.objects.all()`来查看列表.`Site.objects.get(id = 2)`实际上是设置为示例,所以我必须将我的设置更改为3,这是我的localhost设置为. (7认同)
  • 我这样做:`user$ python manage.py shell`。然后在交互式提示中,我发出以下两个命令:`>>> from django.contrib.sites.models import Site` 然后`>>> sorted([(site.id,site.name) for site in Site.objects.all()])`。输出看起来像:`[(1, u'www.lvh.me'), (2, u'example.com'), (3, u'www.example.com'), (4, u'example .com:80'), (5, u'www.example.com:80')]` (2认同)

sub*_*dhk 14

对我来说,当我进入时它显示了这个错误settings.py

SITE_ID = 1
Run Code Online (Sandbox Code Playgroud)

当我将其更改为2

SITE_ID = 2
Run Code Online (Sandbox Code Playgroud)


Dee*_*eep 12

就我而言,在“添加社交应用程序”页面上,我忘记将我的网站选择为"Chosen sites"???

请参阅下面的屏幕截图(右下角是选择的站点列表)在此处输入图片说明


小智 5

第 1 步:转到您的管理页面。social application

在此处输入图片说明

第 2 步:现在添加如下图所示的线条。为了你的客户ID和谷歌API和移动给出的密钥available site (example.com)chosen sites 在此处输入图片说明

第 3 步:现在转到sites管理页面的侧边导航并像下图一样自定义并保存

在此处输入图片说明

第 4 步:现在,SITE_ID = 1在 settings.py 文件中添加。