我创建了一个使用python social auth进行日志记录的小项目。我在link引用了python social auth示例。我可以使用request.name
获取用户名。但是怎么能我得到了其他数据,例如first_name
,last_name
,email
。任何帮助都会得到满足
视图中的示例代码是:
def home(request):
context = RequestContext(request,
{'request': request,
'user': request.user})
return render_to_response('home.html',
context_instance=context)
答案 0 :(得分:1)
以下是一种方法:request.user
有一个名为is_authenticated
的辅助方法,您可以这样使用:
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 %}
无需在上下文中明确发送任何内容。 request
对象已包含所有内容