Django报错SocialApp matching query does not exist以及Django的SITE_ID = 1的含义

搞第三方授权登录的时候

完整报错如下:

DoesNotExist at /accounts/github/login/

SocialApp matching query does not exist.
Request Method:GET
Request URL:http://127.0.0.1:8000/accounts/github/login/?process=login
Django Version:2.2.10
Exception Type:DoesNotExist
Exception Value:
SocialApp matching query does not exist.
Exception Location:/home/appleyuchi/.virtualenvs/python3.7/lib/python3.7/site-packages/django/db/models/query.py in get, line 408
Python Executable:/home/appleyuchi/.virtualenvs/python3.7/bin/python
Python Version:3.7.5
Python Path:
['/home/appleyuchi/桌面/RawStone/django-allauth的调研-☆☆☆☆/Django搭建个人博客:用django-allauth实现第三方登录/my_blog',
 '/home/appleyuchi/.virtualenvs/python3.7/lib/python37.zip',
 '/home/appleyuchi/.virtualenvs/python3.7/lib/python3.7',
 '/home/appleyuchi/.virtualenvs/python3.7/lib/python3.7/lib-dynload',
 '/usr/lib/python3.7',
 '/home/appleyuchi/.virtualenvs/python3.7/lib/python3.7/site-packages',
 '/home/appleyuchi/桌面/原始的Django-oscar/django-oscar/src',
 '/home/appleyuchi/桌面/原始的Django-oscar/django-oscar-paypal']
Server time:Sun, 1 Mar 2020 04:44:56 +0000

 

先说下Django中SITE_ID的意思,其实是admin里面的站点的第几个,

默认情况下SITE_ID=1

 

建议删除http://127.0.0.1:8000/admin/界面中没用的SITE,留一个就行了,如果多个SITE都有用,那么

在settings.py中修改SITE_ID的取值即可

 

不确定SITE_ID的取值的情况下,可以使用:

python manage.py shell
from django.contrib.sites.models import Site
print(Site.objects.get(name='example.com').id)

 

解决方案,检查3个东西:

①settings.py中的SITE_ID的数值以及INSTALLED_APPS中的

'allauth.socialaccount.providers.github',

②检查站点名称

③增加共享登录

http://127.0.0.1:8000/admin/socialaccount/socialapp/add/

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值