0

我正在使用 github API 开发一个网络应用程序。我想获取已使用 Python Social Auth 进行身份验证的用户的令牌,但是UserSocialAuth matching query does not exist当我尝试访问用户的令牌时出现以下错误。

我真的不知道该怎么做才能访问这些额外的数据。

这是我尝试访问令牌时的代码:

    if request.user.is_authenticated:
        gituser = request.user.social_auth.get(provider ='github-oauth2')
        extra_data = str(gituser.extra_data['access_token'])

提前感谢!

4

1 回答 1

1

您正在尝试使用 get() 获取单个对象,并且由于它不存在,因此它返回 DoesNotExist 异常。使用 filter 代替 get 如下所示:

gituser = request.user.social_auth.filter(provider ='github-oauth2')

for user in gituser:
  extra_data = user.extra_data

或者您可以使用 get_object_or_404,如下所示:

from django.shortcuts import get_object_or_404

gituser = get_object_or_404(UserSocialAuth, provider ='github-oauth2')
extra_data = gituser.extra_data
于 2019-05-16T08:19:44.067 回答