Изменить на левую панель навигации, когда на определенной странице? - PullRequest
0 голосов
/ 17 февраля 2012

Может быть, я все делаю неправильно ... Но я пытаюсь изменить левую навигацию на странице, на которой я нахожусь. Левая навигация в 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 Ответ

1 голос
/ 17 февраля 2012

Тег шаблона 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

...