2

私はこのコードを持っています:

{% if True %}
    yo!
{% else %}
    what?
{% endif %}

そして、出力はもちろんですwhat?(もちろん、私は他の方法で質問をしないので、私はそうしますか?)

Trueテンプレートの世界には存在しませんか?

4

3 に答える 3

4

これはちょっとおかしいですし、バグと見なされるかもしれませんが、テンプレートタグの処理方法に関係していると思います。の最初のパラメーターifはコンテキスト変数として扱われる可能性が高いため、コンテキストdictで検索します。もちろん、キーTrueがないため、何も取得しません。True

于 2012-06-19T18:29:41.010 に答える
3

これは、コンテキストにオブジェクトがないために発生するためTrue、虚偽に解決されます。Djangoテンプレートは単純なPythonラッパーではありません。globals()通常のオブジェクトは含まれていませんTrue

于 2012-06-19T19:18:48.330 に答える
2

ifequal関連するタグのドキュメントには次のように書かれています。

引数をテンプレート変数または文字列と比較することのみが可能です。TrueやFalseなどのPythonオブジェクトとの同等性を確認することはできません。何かが真か偽かをテストする必要がある場合は、代わりにifタグを使用してください。

これは、カスタムコンテキストプロセッサを使用してそのように作成しない限り、TrueとFalseが実際にDjangoテンプレートに存在しないことを示唆している可能性があります。

于 2012-06-19T18:29:39.200 に答える