我在base.html模板中有这个:
{% if user.is_authenticated %}
<p style="color:#000;">
Welcome
{{ user.first_name }}
|
<a href="/logout/">Logout</a>
</p>
{% endif %}
我进行身份验证后,转到此页面后,我的名字就不显示了。谁能告诉我为什么?
“欢迎”也没有显示出来。因此,这必须在user.is_authenticated
上失败。
感谢。 :)
答案 0 :(得分:6)
django.contrib.auth.context_processors.auth
中间件负责在请求到达控制器之前设置request.user
。
要从模板访问它,您需要传递此变量或RequestContext
。例如:
def something(request):
context_instance = RequestContext(request)
template_name = 'your_template.html'
extra_context = { 'other_variable': 'some value' }
return render_to_response(template_name, extra_context, context_instance)
这样,所有请求变量都可以从模板中访问。