2009-03-01 14 views
4

Djangoテンプレートブロックの使用方法をテストするには?私は次の操作を実行したいと思い

{% if appnav %} 
<hr /> 
<div id="appnav"> 
    <ul class="tabs"> 
     {% block appnav %}{% endblock %} 
    </ul> 
</div> 
{% endif %} 

...しかし、さらに継承チェーンダウンテンプレートによってブロックの現在の使用のためのテストが動作するようには思えません。

これを行う可能性がある他の条件はありますか?

答えて

4

テンプレート言語は、あなたが探しているものを正確に提供しません。子テンプレートは{{ block.super }}で親ブロックを呼び出すことができますが、親テンプレートは子テンプレートを参照できません。

おそらく、カスタムテンプレートタグを書くことでしょう。テンプレートマニュアルには2つのセクションがあります。

まず、Parsing until another block tag。これにより、解析する方法の基本がわかります。

第2、Parsing until another block tag and saving contents。カスタムタグの中にブロックタグを配置することで、コンテンツを検出して適切なものにすることができます。内側のブロックタグが最初に解析されると信じているので、これはうまくいくはずです。それでもうまくいかない場合は、djangoが提供する既存のブロックテンプレートタグをサブクラス化して、特別な魔法を実装してください。

+0

ありがとうございます...私はいくつかの仕事をし、あなたが規定したように答えを出すことを学ぶ必要があります。 もう一度ありがとうございます。 –

関連する問題