私のDjangoアプリのmaster
テンプレートは次のようになります:
{% block parent %}
Some text...
{% block child %}
Default content here...
{% endblock child %}
...some more text
{% endblock parent %}
ここで、このテンプレートは、child
ブロックが変更されるように上書きする必要があります。
{% extends "master.html" %}
{% block child %}
New content here...
{% endblock child%}
ただし、レンダリングは同じままです(「デフォルトのコンテンツをここに印刷...」)。明らかな何かを見逃したり、ネストされたブロックが不可能ですか? (または、DRYの原則に違反している場合、parent
ブロックを再定義する必要がありますか?)
編集:私はDjango 1.1で作業しています、それが重要な場合。
OK、それはDjangoのテンプレートシステムのバグです。他のほとんどの場合、ベンジェームスは正しいです(上記の私の質問に対する彼のコメントを参照してください)。
私の場合、child
ブロックは{% ifnotequal a b %}
ブロック内にあり、thatはブロックの継承を壊します。このような操作には数十の自然なユースケースがあるため、これはバグだと思います。
対応するチケット 。
これを行う:
{% extends "master.html" %}
{% block parent %}
{% block child %}
New content here...
{% endblock child%}
{% endblock parent %}