django-allauth:从视图中访问“socialaccount_set.all”

时间:2012-10-30 13:00:08

标签: django django-allauth

从这篇文章:How can I get the user's facebook id with django-allauth?有一种简单的方法可以从模板中的用户社交帐户访问额外信息(例如查看{{user.socialaccount_set.all.0.extra_data}}中的条目)

我想在视图中获取此信息,而不是模板,理想情况下循环遍历所有连接的社交帐户,并从每个帐户中获取更理想的信息,然后仅将该信息传递给模板。

有谁知道如何从视图中访问socialaccount_set.all?

3 个答案:

答案 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']

它将获得电子邮件帐户的额外数据。希望对您有所帮助:)