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