我想在模板中显示当前用户的图片。当我使用django-allauth时,如何访问用户的Facebook ID?
我想在模板中显示当前用户的图片。当我使用django-allauth时,如何访问用户的Facebook ID?
每个通过社交账户注册的用户都有一个SocialAccount
实例可用。该模型具有对User
的外键引用。请注意,用户可以将多个社交网络账户连接到其本地账户,因此实际上可能会有多个SocialAccount
实例可用。
如何处理这个问题取决于项目。我可以想象,有人希望在本地复制个人资料图片,或者您可能希望优先使用Google+个人资料图片而不是Facebook的,等等。
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