从这篇文章:How can I get the user's facebook id with django-allauth?有一种简单的方法可以从模板中的用户社交帐户访问额外信息(例如查看{{user.socialaccount_set.all.0.extra_data}}中的条目)
我想在视图中获取此信息,而不是模板,理想情况下循环遍历所有连接的社交帐户,并从每个帐户中获取更理想的信息,然后仅将该信息传递给模板。
有谁知道如何从视图中访问socialaccount_set.all?
答案 0 :(得分:3)
我知道自这个问题发布以来已经过了一年多,但我无法在任何地方找到答案。
这就是我最终做到的,以防将来有人帮助:
#views.py
user.socialaccount_set.all()[0].extra_data
答案 1 :(得分:0)
以下是在视图中访问为用户存储的任何信息的替代方法:
from allauth.socialaccount.models import SocialAccount
social_info = SocialAccount.objects.filter(user=request.user)
fb_id = SocialAccount.objects.filter(user=request.user, provider='facebook')[0].uid
答案 2 :(得分:0)
继续上面的答案,也许您可以尝试使用:
SocialAccount.objects.filter(user=request.user)[0].extra_data['email']
它将获得电子邮件帐户的额外数据。希望对您有所帮助:)