2012-08-03 8 views
11
{% include "example.html" with name="John" hide_last_name=True %} 

基本的に、メインテンプレートにサブテンプレートとして "example.html"を含めるようにしています。追加のコンテキストは、キーワード引数namehide_last_nameを渡すことの平均で提供されます。 djangoテンプレートシステムはnameを認識するのに問題はありませんが、何とかちょうどhide_last_nameを認識できません。私はIncludeタグのブール値のキーワード引数の使用が許可されていると思われますが、私は公式の文書のどこにでもそれを見つけることができません。助けてください。ありがとう。"Include"テンプレートタグを使用してブール値のキーワード引数を渡す方法

答えて

11

Djangoテンプレートは、Trueを変数として扱い、文脈で見つけようとします。
あなたはTEMPLATE_CONTEXT_PROCESSORS介して、例えば、真の値を表すか、文脈でTrueに真の値を割り当てるために、非空の文字列を使用することができ、次のいずれか

def common_vars(request): 
    return { 
     'True': True, 
     'False': False, 
     'newline': '\n', 
     ... 
    } 
+0

疑われましたが、確信が持てませんでした。それを確認していただきありがとうございます。 – tamakisquare

8

ジャンゴ< = 1.4.xのため

前述のように、Djangoは "True"という名前の変数を見つけようとします。 これを処理する最も簡単な方法は、評価されない整数値を使用することです。

はあなたが

John 
{% if show_last_name %} 
    Doe 
{% endif %} 

includerテンプレート

{% include "example.html" with show_last_name=1 %} 

に、付属のテンプレートに書くことができますジャンゴ> = 1.5

あなたはテンプレートでTrueとFalseを使用することができ、これはもはや問題ではありません。

2

django 1.5では、release notesに従ってdjangoテンプレートでTrueを使用できます。

以前のバージョンで作業している場合は、@okmが提案したものを手に入れなければなりません!

関連する問題