我在Django 1.3中有项目。为了在所有页面中显示用户名,我在base.html中使用了这样的标签
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}.
<a href="/proc/accounts/logout/">loggout</a></p>
{% else %}
<a href="/proc/accounts/login/">loggin</a>
{% endif %}
但是,如果我从模板中的用户的视图值返回context_instance=RequestContext(request)
为空。 'django.contrib.auth.context_processors.auth'
包含TEMPLATE_CONTEXT_PROCESSORS
。
是否可以自动包含所有模板的用户?
答案 0 :(得分:1)
你自己给出了答案。只要您使用RequestContext,它就会包含在所有模板中。
如果你真的发现了太多的工作,你可以使用(1.3中的新内容)TemplateResponse class。
答案 1 :(得分:1)
答案 2 :(得分:-1)
或者只是创建一个上下文处理器。看到 http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors
将它放在context_processor.py
中def root_categories(request):
return {
'user': request.user,
}
在settings.py中添加上下文处理器。
现在在您的模板中尝试:{{user}}