是否可以自动将用户包含到所有模板中?
我有 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
中。
是否可以自动将用户包含到所有模板中?
I have project in Django 1.3. In order to show username in all pages I use such tags in 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 %}
But if I dont return context_instance=RequestContext(request)
from view value of user in template is empty. The 'django.contrib.auth.context_processors.auth'
is included to TEMPLATE_CONTEXT_PROCESSORS
.
Is it possible automaticaly include user to all templates?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从 Django 1.3 开始。使用 Shortcuts.render 函数,不要担心 requestcontext 包括您的视图
since django 1.3. use shortcuts.render function and dont warry about requestcontext including to your views
你自己已经给出了答案。只要你使用了RequestContext,它就会包含在所有模板中。
如果您确实发现工作量太大,您可以使用(1.3 中的新功能)TemplateResponse 类。
You've given the answer yourself. As long as you use a RequestContext, it will be included in all templates.
If you really find that too much work, you could use the (new in 1.3) TemplateResponse class.
或者干脆创建一个上下文处理器。看
http://docs.djangoproject。 com/en/dev/ref/templates/api/#writing-your-own-context-processors
将其放在
settings.py 中的 context_processor.py 中添加上下文处理器。
现在在您的模板中尝试: {{ user }}
Or simply create a context processor. See
http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors
Put this in context_processor.py
in settings.py add the context processor.
now in your template try: {{ user }}