私はこのコードを持っています:
{% if True %}
yo!
{% else %}
what?
{% endif %}
そして、出力はもちろんですwhat?
(もちろん、私は他の方法で質問をしないので、私はそうしますか?)
True
テンプレートの世界には存在しませんか?
私はこのコードを持っています:
{% if True %}
yo!
{% else %}
what?
{% endif %}
そして、出力はもちろんですwhat?
(もちろん、私は他の方法で質問をしないので、私はそうしますか?)
True
テンプレートの世界には存在しませんか?
これはちょっとおかしいですし、バグと見なされるかもしれませんが、テンプレートタグの処理方法に関係していると思います。の最初のパラメーターif
はコンテキスト変数として扱われる可能性が高いため、コンテキストdictで検索します。もちろん、キーTrue
がないため、何も取得しません。True
これは、コンテキストにオブジェクトがないために発生するためTrue
、虚偽に解決されます。Djangoテンプレートは単純なPythonラッパーではありません。globals()
通常のオブジェクトは含まれていませんTrue
。
ifequal
関連するタグのドキュメントには次のように書かれています。
引数をテンプレート変数または文字列と比較することのみが可能です。TrueやFalseなどのPythonオブジェクトとの同等性を確認することはできません。何かが真か偽かをテストする必要がある場合は、代わりにifタグを使用してください。
これは、カスタムコンテキストプロセッサを使用してそのように作成しない限り、TrueとFalseが実際にDjangoテンプレートに存在しないことを示唆している可能性があります。