Skip to main content

Booleans

The boolean type is used to represent the truth value of an expression. For example, the expression 1 <= 2 is true , while the expression 0 == 1 is false. Expressions that evaluate to a boolean type are called boolean expressions.

Literals

true

true value is always true.

Another way you may come across is True. But you should use the lowercase version for consistency (all Jinja identifiers are lowercase).

See also: Jinja Docs.

false

false value is always false.

Another way you may come across is False. But you should use the lowercase version for consistency (all Jinja identifiers are lowercase).

See also: Jinja Docs.

Operators

== != > >= < <=

Use this operators to build simple boolean expressions.

  • == - Compares two objects for equality.
  • != - Compares two objects for inequality.
  • > - true if the left hand side is greater than the right hand side.
  • >= - true if the left hand side is greater or equal to the right hand side.
  • < - true if the left hand side is lower than the right hand side.
  • <= - true if the left hand side is lower or equal to the right hand side.

See also: Jinja Docs, Python Docs.

and or not

  • The expression x and y yields false if x is false, otherwise the value of y is returned.
  • The expression x or y yields true if x is true, otherwise the value of y is returned.
  • The expression not x yields true if x is false, false otherwise.

Note that and or does NOT always return bool type, but rather return the last evaluated argument. For example,

{% set x = "hello world" %} {# true #}
{% set y = "" %} {# false #}

"{{ x and y }}"
-> ""

{{ x or y }}
-> hello world

{{ not x }}
-> false

The same is true for other types such as numbers, lists, etc.

When using it as a conditional expression in an {% if ... %} statement, the result is tested as a boolean value, so there is no need to worry about it, but be careful when using the return value in subsequent operations.

See also: Jinja Docs, Python Docs.

Tests

x is boolean

Return true if the object is a boolean value.

{{ (0 == 1) is boolean }}
-> true

See also: Jinja Docs.

x is true

Return true if the object is true.

{{ (1 == 1) is true }}
-> true

See also: Jinja Docs.

x is false

Return true if the object is false.

{{ (0 == 1) is false }}
-> true

See also: Jinja Docs.

Tests: Comparisons

x is eq y

Same as x == y.

Aliases: ==, equalto.

{{ [1, 2, 3, 2]|select('eq', 2)|list }}
-> [2, 2]

See also: Jinja Docs, list|select.

x is ge y

Same as x >= y.

Aliases: >=.

{{ [1, 2, 3, 2]|select('ge', 2)|list }}
-> [2, 3, 2]

See also: Jinja Docs, list|select.

x is gt y

Same as x > y.

Aliases: >, greaterthan.

{{ [1, 2, 3, 2]|select('gt', 2)|list }}
-> [3]

See also: Jinja Docs, list|select.

x is le y

Same as x <= y.

Aliases: <=.

{{ [1, 2, 3, 2]|select('le', 2)|list }}
-> [1, 2, 2]

See also: Jinja Docs, list|select.

x is lt y

Same as x < y.

Aliases: <, lessthan.

{{ [1, 2, 3, 2]|select('lt', 2)|list }}
-> [1]

See also: Jinja Docs, list|select.

x is ne y

Same as x != y.

Aliases: !=.

{{ [1, 2, 3, 2]|select('ne', 2)|list }}
-> [1, 3]

See also: Jinja Docs, list|select.