如何使用python social auth..获取用户数据。。?
我已经创建了一个使用python social auth登录facebook的小项目。我在上引用了python social auth示例。我可以通过如何使用python social auth..获取用户数据。。?,python,django,python-social-auth,Python,Django,Python Social Auth,我已经创建了一个使用python social auth登录facebook的小项目。我在上引用了python social auth示例。我可以通过请求.name获取用户名。但是如何获取其他数据,如名字,姓氏,电子邮件。任何帮助都将不胜感激 视图中的示例代码是: def home(request): context = RequestContext(request, {'request': request,
请求.name
获取用户名。但是如何获取其他数据,如名字
,姓氏
,电子邮件
。任何帮助都将不胜感激
视图中的示例代码是:
def home(request):
context = RequestContext(request,
{'request': request,
'user': request.user})
return render_to_response('home.html',
context_instance=context)
这里有一种方法:
请求。用户
有一个名为的助手方法是经过身份验证的
,您可以这样使用它:
ctx = {
'user' : request.user
}
if request.user.is_authenticated():
ctx.update({
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'email' : request.user.email
})
现在,仅当用户经过身份验证时,额外的属性才会出现
也就是说,假设您使用的是django的auth
模型。如果没有,请相应地更改模型字段名称
另一方面,您不应该在上下文中传递整个请求对象。您应该只提取相关信息并在上下文中发送
现在,您可以通过任何方式从模板访问所有这些值。例如:
{% if request.user.is_authenticated %}
{{request.user.username}}
{{request.user.email}}
{# etc.. #}
{% endif %}
无需在上下文中显式发送任何内容。
请求
对象已经拥有了所有内容谢谢,如果用户经过身份验证,我们将获得哪些值…?您必须在设置.py
中添加社交身份验证FACEBOOK\u SCOPE=['email']
,以便从FACEBOOK获取电子邮件。如果您的意思是未经身份验证,这个上下文实际上没有任何意义,因为它会有user
。仔细想想,您可以从模板本身获得所有这些值。让我编辑一下答案