Циклы

Цикл задается командой «for». Содержимое цикла повторяется на каждом проходе.

Циклы по элементам списка

Цикл делает столько проходов, сколько элементов в списке. После «for» указывается любое имя для текущего элемента, после «in» — название списка:

{% for element in list_example %}
1. {{ element }}
{% endfor %}
  1. красный
  2. оранжевый
  3. желтый
  4. зеленый
  5. голубой
  6. синий
  7. фиолетовый

Циклы по объектам

Цикл делает столько проходов, сколько в проекте объектов этого типа. После «for» указывается любое имя для текущего объекта, после «in» — код типа объектов:

{% for comp in component %}
Содержимое
{% endfor %}

Подробнее см. «Объекты в шаблонах»

Циклы со счетчиками

Имя счетчика указывается после «for», а диапазон и шаг — в скобках после «range»: начальное число, конечное число (само оно в диапазон не входит) и шаг.

Нечетные натуральные числа меньше 100:
{% for i in range (1, 100, 2) %}{{ i }} {% endfor %}

Нечетные натуральные числа меньше 100:
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

Использование условий

Условие можно поставить прямо в команду цикла — тогда цикл выполнится, только если условие выполняется:

{% for comp in component if components_necessary == "true" %}
Содержимое
{% endfor %}

В цикл можно добавить и «else»:

{% for comp in component if components_necessary == "true" %}
Содержимое
{% else %}
Описание компонентов не требуется
{% endfor %}

Если условие не выполняется, цикл не делает ни одного прохода, и выводится то, что стоит между «else» и «endfor». Такая запись равносильна следующей:

{% if components_necessary == "true" %}
{% for comp in component %}
Содержимое
{% endfor %}
{% else %}
Описание компонентов не требуется
{% endif %}

Цикл по пустому списку ничего не выводит, поэтому «else» удобно использовать для случая, когда элементов нет:

{% for comp in component %}
Содержимое
{% else %}
Компоненты не обнаружены
{% endfor %}

Прерывание прохода

Чтобы пропустить остаток текущего прохода и перейти к следующему, используйте команду «continue»:

{% for element in list_example %}
{% if element == "оранжевый" %}
{% continue %}
{% endif %}
1. {{ element }}
{% endfor %}

Результат:

  1. красный
  2. желтый
  3. зеленый
  4. голубой
  5. синий
  6. фиолетовый

Прерывание цикла

Чтобы досрочно завершить цикл, используйте команду «break»:

{% for element in list_example %}
1. {{ element }}
{% if element == "желтый" %}
{% break %}
{% endif %}
{% endfor %}

Результат:

  1. красный
  2. оранжевый
  3. желтый