テンプレートタグは、実際には、必要な出力を実現するために特別な処理を適用するためのものです。テンプレートタグを使用すると、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>
テンプレートとカスタムテンプレートタグに関するドキュメントをご覧ください。