我想在模板中显示current_user的图片。当我使用django-allauth时,如何访问用户的脸书ID?
答案 0 :(得分:28)
对于通过社交帐户注册的每个用户,都可以使用SocialAccount
实例。此模型具有User
的外键。请注意,用户可以将多个社交网络帐户连接到其本地帐户,因此实际上可能有多个SocialAccount
个实例可用。
您希望如何处理此问题取决于项目。我可以想象有人想在本地复制个人资料图片,或者你可能想要优先考虑Facebook上面的Google+个人资料图片,依此类推。
SocialAccount
模型有一些辅助方法,可让您访问帐户基础知识,例如个人资料图片。总而言之,这是一个快速的&脏的方式访问第一个可用的个人资料图片:
{{user.socialaccount_set.all.0.get_avatar_url}}
该ID也可用:
{{user.socialaccount_set.all.0.uid}}
另请参阅:https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/models.py#L72