Я думаю, что когда вы определяете String
, вы определяете объект. Поэтому вам нужно использовать .equals()
. Когда вы используете примитивные типы данных, вы используете ==
, но с String
(и любым объектом) вы должны использовать .equals()
.
Тег цикла предназначен для этого типа проблем:
{% for field in form %}
<li class="{% cycle 'thiscolor' 'thatcolor' %}">{{ field }}</li>
{% endfor %}
Еще одна вещь, о которой следует помнить, заключается в том, что, поскольку это проблема внешнего интерфейса - стиль - это то, что вы пытаетесь реализовать, - вы можете решить ее на стороне интерфейса. В конце статьи A List Apart приведен хороший пример. Конечно, если у вас уже есть рабочий код Django, нет смысла делать это сейчас.
Я согласен с Джарретом, что цикл
здесь лучший, но чтобы на самом деле ответить на вопрос, операцию % 2 == 0
можно воспроизвести, используя фильтр divisibleby
.
{% if forloop.counter|divisibleby:"2" %}