如何将变量从视图页面传递到基本模板

时间:2017-05-05 11:57:40

标签: python django

我正在尝试将用户登录到他的个人资料中,并且需要将用户名传递到基本模板中的导航栏。 我有 base.html(基本模板) index-client.html(正文模板)。 现在从登录视图,我想将用户名值传递给base.html。

用户身份验证后的代码:

        if user is not None:
            if user.is_active:
                login(request, user)
                return redirect('index-client.html')

我需要将用户名传递给base.html,即基本模板。

2 个答案:

答案 0 :(得分:1)

{{ request.user }}方法是使用Django构建的,您可以在任何模板中使用它来访问User对象。

如果您想在导航栏中显示用户名,可以使用:

{{ request.user.first_name|capfirst }} {{ request.user.last_name|capfirst }}

可以看出,这可以使用模板标记|capfirst来大写第一个字母。

答案 1 :(得分:0)

根据文档,redirect将接受

  • 模型:将调用模型的get_absolute_url()函数。

  • 视图名称,可能带参数:reverse()将用于反向解析名称。

  • 绝对或相对网址,将用作重定向位置的原样。

因此重定向到呈现基本html的特定视图。在html中

{% if request.user.is_authenticated %}
    {{ request.user.username }}
{% endif %}