0

たぶん、私はこれについてすべて間違った方法で行っています...しかし、私がやろうとしているのは、現在のページによって左側のナビゲーションを変更することです。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 %}

基本コンテキストを介して渡す必要があるかどうかはわかりません。ヘルプとアイデア/推奨事項に感謝します。

4

1 に答える 1

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

于 2012-02-17T03:00:07.263 に答える