web-dev-qa-db-ja.com

Djangoテンプレートのネストされたブロック

私の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で作業しています、それが重要な場合。

23
Boldewyn

OK、それはDjangoのテンプレートシステムのバグです。他のほとんどの場合、ベンジェームスは正しいです(上記の私の質問に対する彼のコメントを参照してください)。

私の場合、childブロックは{% ifnotequal a b %}ブロック内にあり、thatはブロックの継承を壊します。このような操作には数十の自然なユースケースがあるため、これはバグだと思います。

対応するチケット

11
Boldewyn

これを行う:

{% extends "master.html" %}

{% block parent %}
    {% block child %}
        New content here...
    {% endblock child%}
{% endblock parent %}
0
Lakshman Prasad