扩展父django模板,以及包含变量

时间:2014-07-07 15:35:48

标签: django django-templates

我有一个我试图扩展的基本模板。在该模板中,我有一个需要传递变量的导航。

我正在做的是努力扩展'通过使用像这样的包含:

{% include "base.html" with active_nav='atInventory' %}

但是这并没有以正确的顺序呈现扩展内容的基础块。

导航在基座中设置如下:

    <nav class="col-xs-12 paddingVertical-sm">
        <ul class="removePadding removeMargin txtXxs">
            <li class="{% if active_nav == 'atContact' %} activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'contact' %}">CONTACT<a>
            </li>
            <li class="{% if active_nav == 'atAbout' %} activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'about' %}">ABOUT</a>
            </li>
            <li class="{% if active_nav == 'atProjects' %} activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'projects' %}">PROJECTS & CLINICS</a>
            </li>
            <li class="{% if active_nav == 'atServices' %} activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'services' %}">SERVICS</a>
            </li>
            <li class="{% if active_nav == 'atInventory' %}  activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'inventory' %}">INVENTORY</a>
            </li>
            <li class="{% if active_nav == 'atHome' %} activeNav {% else %} inactiveNav{% endif %}">
                <a href="{% url 'index' %}">HOME</a>
            </li>
            <br class="clear-fix">
        </ul>
        <img src="{% static 'images/assets/klossviolins_logo.png' %}" />
        <br class="clear-fix">
    </nav>

有更好的方法吗?或者这只是需要稍微调整一下?提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

我不会这样做 - 按照预期的方式扩展它。包括用于包含可重用组件。在这里,您只需要每个模板都可以扩展您的&#39; base.html&#39; {%extends&#39; base.html&#39;%}

也是一个指针 - 我用微小的脚本而不是大量的if语句来做主动导航。因此,为每个li元素添加一个ID(在我的示例中为#nav-home for index),并在您的主页上添加如下内容:

<script>
 $(document).ready(function() {
 $( "#nav-home").addClass("activeNav");
 });
</script>