2012-05-01 6 views

答えて

2

あなたのデフォルトのデータのコンテナとして、あなたの親(ベース)テンプレート内のブロックを定義し、通常Template Inheritance

を使用することができます。

ここでこのテンプレートを拡張すると、このブロックをどのようにするかを決めることができます。 ブロックをオーバーライドしないと、デフォルトのデータが表示されます。それ以外の場合は、継承したテンプレートのブロックのデータが表示されます。最後に

{{ block.super }}はあなたのベースからの内容と継承されたテンプレートをミックスするためのオプションを提供します:

あなたはそれを完全に上書きする代わりに の親ブロックの内容に追加する 場合に便利です。

0

例えばautoescape

# in autoescape() 
# get content from current autoecape to pairing endautoescape 
nodelist = parser.parse(('endautoescape',)) 

# in AutoEsacpeControlNode.render() 
# render inner content 
output = self.nodelist.render(context) 

、ジャンゴ/テンプレート/ defaulttags.py内部の組み込みコマンドタグの実装を確認してくださいしたがってますカスタマイズしたタグに次のような文字を書きます。

def render(self, context): 
    ... 
    if extend: 
     return default_content 
    else: 
     return self.nodelist.render(context) 

通常if... elseが...また、トリックを行います:

{% if extended %} 
... 
{% else %} 
{{ default }} 
{% endif %} 
関連する問題