Шаблонная арифметика Джанго - PullRequest
2 голосов
/ 27 сентября 2011

В моем шаблоне я перебираю список, пытаясь создать макет из двух столбцов.Из-за желаемого расположения в два столбца разметка, которую мне нужно записать в цикле for, зависит от того, является ли forloop.counter0 четным или нечетным.Если бы у меня были все возможности Python в языке шаблонов, определение четности forloop.counter0 было бы тривиальным, но, к сожалению, это не так.Как я могу проверить, является ли forloop.counter0 четным или нечетным, используя язык шаблонов Django, или так же хорошо, есть ли другой способ получить элементы в списке для альтернативного отображения в левом и правом столбцах?

Заранее спасибо!

Ответы [ 3 ]

7 голосов
/ 27 сентября 2011

Вы, вероятно, должны использовать здесь cycle.Что касается вашего вопроса, есть фильтр под названием divisibleby.

Философия системы шаблонов Django состоит в том, чтобы избегать какой-либо серьезной логики в шаблоне.Таким образом, они предоставляют инструменты только для довольно простых вычислений для таких случаев, как рисование сеток и т. Д.

2 голосов
/ 27 сентября 2011

Вы можете использовать фильтр divisibleby с forloop.counter:

{% if forloop.counter|divisibleby:"2" %}even{% else %}odd{% endif %}
1 голос
/ 27 сентября 2011

Использовать тег шаблона цикла :

...