12
{% include "example.html" with name="John" hide_last_name=True %}

基本的に、メインテンプレートのサブテンプレートとして「example.html」を含めようとしています。name追加のコンテキストは、キーワード引数とを渡す手段で提供されますhide_last_name。djangoテンプレートシステムは問題nameなく認識できますが、どういうわけか認識できませんhide_last_name。タグでのブールキーワード引数の使用Includeが現在許可されていると思いますが、公式ドキュメントでそれについて言及している場所はどこにも見つかりません。手伝ってください。ありがとう。

4

3 に答える 3

14

Django<=1.4.xの場合

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

インクルーダーテンプレートに書き込むことができます

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

含まれているテンプレート

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

Djangoの場合>=1.5

テンプレートではTrueとFalseを使用できるため、これは問題ではなくなりました

于 2012-12-12T10:36:48.210 に答える
11

更新:この回答は、古いバージョンのDjangoに適用されます。Django> = 1.5については、以下のこの回答を参照してください

DjangoテンプレートはTrue、を変数として扱い、コンテキスト内でそれを見つけようとします。
空でない文字列を使用して真の値を表すか、次のTrueようにコンテキスト内に真の値を割り当てることができTEMPLATE_CONTEXT_PROCESSORSます。

def common_vars(request):
    return {
        'True': True,
        'False': False,
        'newline': '\n',
        ...
    }
于 2012-08-04T04:20:23.260 に答える
2

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

また、以前のバージョンで作業している場合は、@okmが提案したものを使用する必要があります。

于 2013-05-13T07:08:19.377 に答える