Jinja2 って、テンプレート内で他のテンプレートを読み込めるんです。テンプレートを共通化する方法は継承だけじゃないんですよ。私も最近調べて知ったんですけどね。
この機能を使えば、ページネーションやデータ一覧みたいな「テンプレート継承を使う程じゃ無いけど複数ページで表示するもの」を上手くまとめることができそうです。
ページネーションなら、
<!--ページネーションは複数のテンプレートで使うので、外部テンプレート化--> <!--前のページへのリンクを出力--> {% if page.has_previous %} <a href="?page={{ page.previous_page_number }}">前</a> {% endif %} <!--現在のページ番号と総ページ数を出力--> <span>{{ page.number }} / {{ page.paginator.num_pages }}</span> <!--次のページへのリンクを出力--> {% if page.has_next %} <a href="?page={{ page.next_page_number }}">次</a> {% endif %}
上記のようにテンプレート化して、
<div id="pagination"> <!--ページネーションを読み込む--> {% include "core/render_pagination.html" %} </div>
で読み込んでやれば、DRY になりますね。