Подтвердить что ты не робот

Как я могу получить идентификатор пользователя facebook с django-allauth?

Я хочу отобразить изображение текущего_узера в моем шаблоне. Как я могу получить доступ к идентификатору пользователя facebook, когда я использую django-allauth?

4b9b3361

Ответ 1

Для каждого пользователя, зарегистрированного через социальную учетную запись, доступен экземпляр SocialAccount. Эта модель имеет внешний ключ для User. Обратите внимание, что пользователь может подключать несколько учетных записей социальных сетей к своей локальной учетной записи, поэтому на практике может быть доступно несколько экземпляров SocialAccount.

Как вы хотите иметь дело с этим, зависит от проекта. Я могу себе представить, что вы захотите скопировать изображение профиля локально или, возможно, хотите отдать предпочтение картине профиля Google+ выше Facebook и т.д.

Модель SocialAccount имеет некоторые вспомогательные методы, которые дают вам доступ к основам учетной записи, таким как изображение профиля. В общем, это быстрый и грязный способ доступа к первой доступной картине профиля:

{{user.socialaccount_set.all.0.get_avatar_url}}

Идентификатор также доступен:

{{user.socialaccount_set.all.0.uid}}

Смотрите также: https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L72