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

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


person fceruti    schedule 31.08.2012    source источник


Ответы (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

person pennersr    schedule 01.09.2012
comment
Можно ли получить ссылку на профессиональный заголовок и профиль в Твиттере? Биографическую информацию? - person thchand; 01.08.2013