我在下面有条件声明
{% if juice.slug != "slug-one" or "slug-two" %}
rendering things if the page slug isn't slug-one or slug-two
{% endif %}
由于某种原因,该条件语句仅在不是“子弹头1”或“子弹头2”时才起作用。
答案 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"
,反之亦然。