Django UserSocialAuth соответствующий запрос не существует - PullRequest
0 голосов
/ 16 мая 2019

Я занимаюсь разработкой веб-приложения с помощью 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'])

Спасибо заранее!

1 Ответ

1 голос
/ 16 мая 2019

Вы пытаетесь получить отдельный объект с помощью get (), и, поскольку он не существует, он возвращает исключение DoesNotExist.Используйте фильтр вместо 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
...