是否可以自动将用户包含到所有模板中?

发布于 2024-11-05 04:36:06 字数 536 浏览 5 评论 0原文

我有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

抱猫软卧 2024-11-12 04:36:07

从 Django 1.3 开始。使用 Shortcuts.render 函数,不要担心 requestcontext 包括您的视图

since django 1.3. use shortcuts.render function and dont warry about requestcontext including to your views

誰認得朕 2024-11-12 04:36:07

你自己已经给出了答案。只要你使用了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.

倾城花音 2024-11-12 04:36:07

或者干脆创建一个上下文处理器。看
http://docs.djangoproject。 com/en/dev/ref/templates/api/#writing-your-own-context-processors

将其放在

def root_categories(request):
    return {
        'user': request.user,
    }

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

def root_categories(request):
    return {
        'user': request.user,
    }

in settings.py add the context processor.

now in your template try: {{ user }}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文