0

プロジェクトでテンプレート言語としてjinja2を使用しています。単純化されたテンプレート構造は次のとおりです。

base.html :

{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}

content.html :

{% extend 'base.html' %}

{% block content %}
    <div class="content">
        Content
        {% block sidebar %}
            <div class="sidebar">Sidebar</div>
        {% sidebar %}
    </div>
{% endblock %}

content.html renderの結果:

<div class="content">
    Content
    <div class="sidebar">Sidebar</div>
</div>
<div class="sidebar">Sidebar</div>

ご覧のとおりsidebar、 render で 2 回表示されますcontent.html

質問:

sidebarinの出現を避け、 insidecontentを残す方法はありますか?{% block sidebar %}{% block content %}

4

1 に答える 1

1

content.html テンプレートが無効だと思います。コンテンツ ブロック内にサイドバー関連のコンテンツを明確に配置しているため、常にそこに表示されます。また、base.html も無効に見えます。次のようになります。

{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}
于 2013-01-23T11:33:29.083 に答える