Циклы
Цикл задается командой «for». Содержимое цикла повторяется на каждом проходе.
Циклы по элементам списка
Цикл делает столько проходов, сколько элементов в списке. После «for» указывается любое имя для текущего элемента, после «in» — название списка:
{% for element in list_example %}
1. {{ element }}
{% endfor %}
- красный
- оранжевый
- желтый
- зеленый
- голубой
- синий
- фиолетовый
Циклы по объектам
Цикл делает столько проходов, сколько в проекте объектов этого типа. После «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 %}
Результат:
- красный
- желтый
- зеленый
- голубой
- синий
- фиолетовый
Прерывание цикла
Чтобы досрочно завершить цикл, используйте команду «break»:
{% for element in list_example %}
1. {{ element }}
{% if element == "желтый" %}
{% break %}
{% endif %}
{% endfor %}
Результат:
- красный
- оранжевый
- желтый