1

有没有办法在 base.html 文件中访问登录用户的名字?

我正在尝试这样做,因为我想在导航栏上显示当前登录的人,但它不会访问用户的信息,也不会正确检查用户是否经过身份验证。

base.html 中的 html

            Hi there,

            {% if user.is_authenticated %}

                {{user.first_name}}
            {% else %}
                Stranger
            {% endif %}
4

2 回答 2

4

request.user为您提供当前登录的用户对象。因此您可以完全访问 User 类拥有的所有属性和方法。要得到first_name,你就可以做到{{ request.user.first_name }}。要获取您使用的全名{{ request.user.get_full_name }}

于 2012-09-08T02:24:39.593 回答
1

如果您使用[RequestContext][1],默认情况下您会user在模板中获得实例,以便您可以将其用作其属性 as{{user.first_name}}和其他。这user将与当前已通过身份验证的用户相同,该用户也可在request.user视图中使用。

RequestContext默认情况下会添加一些在TEMPLATE_CONTEXT_PROCESSORS您的settings.py.

在您看来,您可以将其用作

#your view code
....
#send response by rendering the template and use Requestcontext while rendering template
return render_to_response('polls/detail.html', {'poll': p},
                           context_instance=RequestContext(request))

参考 - Django 教程 04

于 2012-09-08T05:50:20.953 回答