在特定页面上更改为我的左侧导航栏?

时间:2012-02-17 00:52:27

标签: django html5 django-templates django-context

也许我会以错误的方式解决这个问题......但我正在尝试做的是通过我所在的页面更改左侧导航。 base.html中的左侧导航在整个过程中都很明显,但是一旦用户在forums.html(扩展base.html)上,我想要左侧导航更改。

base.html文件:

{% if not no_left_bar %}
    <div class="container">
        <div class="row">
        <!-- Left Side Bar -->
             <nav>
                  original base.html nav goes here
             </nav>
             <!-- Some condition that goes here/ When forums.html -->
             <nav>
                  forums.html( extends base.html ) nav goes here
             </nav>
         </div>
     </div>
{% endif %}

我不知道是否必须通过基本上下文传递它。我很感谢帮助和任何想法/建议。

1 个答案:

答案 0 :(得分:1)

django {% block %}模板标记允许您定义可由子模板覆盖的内容块。尝试这样的事情:

<强> base.html文件

<div class="container">
    <div class="row">
        {% block nav %}
             <nav>
                  <!-- original base.html nav goes here -->
             </nav>
         {% endblock %}
     </div>
 </div>

然后在 forums.html

{% extends "base.html" %}

{% block nav %}

    <nav>
        <!-- new forums.html nav goes here -->
    </nav>

{% endblock %}

输出看起来像

<div class="container">
    <div class="row">
            <nav>
                <!-- new forums.html nav goes here -->
            </nav>
     </div>
 </div>

此处的文档:https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance