Jinja: 含まれているテンプレートのブロックを上書きできません

作成日 2013年01月08日  ·  3コメント  ·  ソース: pallets/jinja

次のように、含まれているテンプレートのブロックをオーバーライドしようとしています。

#included.jinja2

{% block master %}
    Default master content
{% endblock %}
#base.jinja2
{% include "included.jinja2" %}
{% include "included.jinja2" with context %}

{% block master %}
Fnord
{% endblock master %}
#hello.jinja2
{% extends "base.jinja2" %}

{% block master %}

Overridden master content

{% endblock master %}

hello.jinja2ファイルを実行すると、この出力が表示されます

    Default master content
    Default master content
Overridden master content

少なくとも2番目のデフォルトのマスターコンテンツがオーバーライドされたコンテンツに置き換えられることを期待していました。

それがバグだと思います。

全てのコメント3件

複製。

の?

編集:これはどの問題と重複していますか?

さらに悪いことに、Djangoテンプレートもそれを行いません(最後の注を参照してください:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#include)

おそらくjinja2がそうするだろうと思ったので、多くの重複を省くことができます> _ <

とにかく、私は物事を単純化する方法を見つける必要があると思います:(

このページは役に立ちましたか?
0 / 5 - 0 評価