如何使用python social auth获取用户数据..?

时间:2014-10-20 18:32:29

标签: python django python-social-auth

我创建了一个使用python social auth进行日志记录的小项目。我在link引用了python social auth示例。我可以使用request.name获取用户名。但是怎么能我得到了其他数据,例如first_namelast_nameemail。任何帮助都会得到满足

视图中的示例代码是:

def home(request):
   context = RequestContext(request,
                       {'request': request,
                        'user': request.user})
   return render_to_response('home.html',
                         context_instance=context)

1 个答案:

答案 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对象已包含所有内容