Jinja2: Проверка Существования и Значения Переменной

В Jinja2-темплейтах является хорошей практикой заранее проверять существует ли переменная и какое у нее значение.

Существует несколько полезных проверок, которые вы можете сделать с помощью встроенных в Jinja2 тестов и фильтров.

В этой статье я покажу, как проверить, существует ли переменная, является ли она пустой или она установлена в значение True.

Я также приведу два примера того, как можно объединять эти проверки.

Проверка Переменной в Jinja2

Проверить существует ли (определена ли) переменная:

{% if variable is defined %}
    variable is defined
{% else %}
    variable is not defined
{% endif %}

Проверить является ли пустой переменная:

{% if variable|length %}
    variable is not empty
{% else %}
    variable is empty
{% endif %}

Проверить установлена ли в значение true переменная:

{% if variable is sameas true %}
    variable is true
{% else %}
    variable is not true
{% endif %}

Проверить что переменная существует и не является пустой:

{% if variable is defined and variable|length %}
    variable is defined and not empty
{% else %}
    variable is not defined or empty
{% endif %}

Проверить что переменная существует и установлена в значение true:

{% if variable is defined and variable is sameas true %}
    variable is defined and true
{% else %}
    variable is not defined or not set to true
{% endif %}

5 Replies to “Jinja2: Проверка Существования и Значения Переменной”

  1. Your third example has a minor mistake. Instead of «variable sameas true» it needs to read «variable is sameas true». Otherwise, it will throw an error.

  2. Any particular reason why you can’t shorten it to «variable is defined and variable» ?

  3. Hi, can you check if multiple variables are defined?
    for example (i don’t know the correct syntax)
    {% if variable1, variable2, variable3 %}

    {% endif %}

  4. Hi, you can try
    {% if variable1 is defined and variable2 is defined and variable3 is defined %}

    {% endif %}

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.