Django模板条件语句

时间:2019-05-17 19:54:56

标签: django django-templates

我在下面有条件声明

{% if juice.slug != "slug-one" or "slug-two" %}
   rendering things if the page slug isn't slug-one or slug-two
{% endif %}

由于某种原因,该条件语句仅在不是“子弹头1”或“子弹头2”时才起作用。

1 个答案:

答案 0 :(得分:0)

简短答案:使用if juice.slug != "slug-one" and juice.slug != "slug-two"

语句juice.slug != "slug-one" or "slug-two" 总是为True。 Python计算表达式的真实性,非空字符串具有真实性True

您正在寻找条件:

{% if juice.slug != "slug-one" and juice.slug != "slug-two" %}
   rendering things if the page slug isn't slug-one or slug-two
{% endif %}

因此,您必须重新定义juice.slug !=部分,并且介于两者之间的运算符为and not or。如果我们使用or,则该语句始终始终为True,因为:

slug       | slug != "slug-one" |  slug != "slug-two" | with and | with or
--------------------------------------------------------------------------
"slug-one" | False              | True                | False    | True
"slug-two" | True               | False               | False    | True
other      | True               | True                | True     | True

因此,如果您使用or,则每次两个语句中的至少一个是True,因为如果字符串等于"slug-one",那么它当然不等于"slug-two",反之亦然。