69

Django テンプレートで使用できる三項演算子 (条件 ? 真値 : 偽値) があるかどうか疑問に思っていました。Python のもの (条件の場合は true 値、それ以外の場合は false-値) があることがわかりますが、Django テンプレート内でそれを使用して、値の 1 つによって指定された html を表示する方法がわかりません。何か案は?

4

6 に答える 6

107

yesno フィルターを使用できます。

{{ value|yesno:"yeah,no,maybe" }}

詳細はこちら

于 2011-05-22T16:37:37.427 に答える
44

テンプレート内で三項演算子が必要なのはなぜですか? {% if %}必要なの{% else %}はそれだけです。

firstofまたは、次のタグを試すこともできます。

{% firstof var1 var2 var3 %}

True 値に評価される var1、var2、または var3 の最初のものを出力します。

于 2010-06-24T13:13:33.543 に答える
5

Django の三項演算子をタグとして実装しました。https://github.com/alexei/django-template-extensionsを参照してください。次の ように使用できます。

{% ?: exp1 exp2 exp3 %}
{% ?: exp1 exp2 %}

または:

{% iif exp1 exp2 exp3 %}
{% iif exp1 exp2 %}

yesno実際にはPythonicではありませんが、フィルターよりも理にかなっていることがわかりました。

于 2012-10-10T22:04:14.217 に答える
5

あなたはそうしない。Django のtemplatetag は、、 などの{% if %}サポートを開始したばかりで、今のところコンパクトです。==and{% if cond %}{% else %}{% endif %}

于 2010-06-24T13:15:09.863 に答える
2

Pythonやトリックが機能するかどうか疑問に思いますか?

condition and true_value or false_value

三項演算子のように動作します-条件がTrueと評価された場合はtrue_valueを出力し、そうでない場合はfalse_valueを出力します。

于 2010-06-24T14:29:18.547 に答える