Короткий ответ : используйте if juice.slug != "slug-one" and juice.slug != "slug-two"
.
Заявление juice.slug != "slug-one" or "slug-two"
равно всегда Верно.Python оценивает истинность выражений, а непустая строка имеет истинность True
.
Вы ищете условие:
{% if juice.slug != "slug-one" and <b>juice.slug != "slug-two"</b> %}
rendering things if the page slug isn't slug-one or slug-two
{% endif %}
Итак, у вас естьдля восстановления части juice.slug !=
, и оператор между ними - and
, , а не or
.Если мы используем or
, то оператор по-прежнему всегда True
, поскольку:
slug | slug != "slug-one" | slug != "slug-two" | with and | with or
--------------------------------------------------------------------------
"slug-one" | False | True | False | <b>True</b>
"slug-two" | True | False | False | <b>True</b>
other | True | True | True | True
Так что, если вы используете or
, каждый раз, по крайней мере, одно из двух утверждений будет True
,поскольку если строка равна "slug-one"
, то, конечно, она не равна "slug-two"
и наоборот.