我想知道是否有一个可以在Django模板中使用的三元运算符(条件?true-value:false-value)。我看到有一个python(真值,如果条件其他假值)但我不确定如何在Django模板中使用它来显示由其中一个值给出的html。有什么想法吗?
答案 0 :(得分:72)
您可以使用yesno过滤器:
{{ value|yesno:"yeah,no,maybe" }}
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#yesno
答案 1 :(得分:30)
为什么在模板中需要三元运算符?您只需要{% if %}
和{% else %}
。
或者你可以试试firstof
标签:
{% firstof var1 var2 var3 %}
输出var1,var2或var3中的第一个,其值为True值。
答案 2 :(得分:18)
仅仅因为此处尚未提及:内置模板代码default
和default_if_none
在简单环境中非常有用:
默认
如果value的计算结果为False,则使用给定的默认值。否则,使用值。
例如:
{{ value|default:"nothing" }}
如果value为“”(空字符串),则输出将为空。
default_if_none
如果(且仅当)值为None,则使用给定的默认值。否则,使用>值。
请注意,如果给出空字符串,则不会使用默认值。如果要为空字符串回退,请使用>默认过滤器。
例如:
{{ value|default_if_none:"nothing" }}
如果value为None,则输出将为字符串“nothing”。
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#default
答案 3 :(得分:4)
你没有。 Django {% if %}
模板标签刚刚开始支持==
,and
等。{% if cond %}{% else %}{% endif %}
与现在一样紧凑。
答案 4 :(得分:1)
我想知道python和/或技巧是否有效?
condition and true_value or false_value
的行为类似于三元运算符 - 如果条件计算结果为True,则输出true_value,否则输出false_value。