2

Djangoは初めてで、テンプレートエンジンを初めて使用します。私の質問は...

base.htmlにナビゲーションdivがあります。他の言語では、htmlのnav要素にincludeを使用します。Djangoには、テンプレートタグと呼ばれるものがあります。では、テンプレートタグを使用して、navや古い学校のインクルード(Djangoもサポートしていると思います)などのプレゼンテーション要素を表示する必要がありますか?

また、これをスタックオーバーフローの質問に保つには、例が役立ちます。

ありがとう

4

1 に答える 1

3

テンプレートタグは、実際には、必要な出力を実現するために特別な処理を適用するためのものです。テンプレートタグを使用すると、Python言語のすべての機能にアクセスできます。djangoテンプレート言語ははるかに単純です。

テンプレートタグを書くのではなく、インクルードを使い続けることをお勧めします。読みやすくなります。

ビュー(またはテンプレート/テンプレートタグの外側)で変数のリストを作成する必要があることに注意してください。

def your_view(request):
    #...
    nav_items = Category.objects.filter(include_in_nav=True)
    return render(request, 'your_page.html', {'nav_items': nav_items})

次に、your_page.htmlで実行します-

{% include 'nav.html' %}

次にnav.html、次のようになります-

<nav>
    {% for item in nav_items %}
        <a href="{% url cat_page item %}>{{ item.title }}</a>
    {% endfor %}
</nav>

テンプレートカスタムテンプレートタグに関するドキュメントをご覧ください。

于 2013-02-27T11:11:41.870 に答える