Шаблоны Django предлагают встроенный тег cycle
для чередования нескольких значений в разных точках шаблона (или для цикла в шаблоне), но этот тег не reset, когда он доступен в области вне cycle
определение. То есть, если у вас есть два или более списков в вашем шаблоне, строки всех из которых вы хотели бы использовать некоторые определения css odd
и even
, первая строка списка будет забираться там, где последнее прекращено, а не с новой итерацией из вариантов (odd
и even
)
Например, в следующем коде, если первый блог имеет нечетное количество записей, первая запись во втором блоге начнется как even
, когда я хочу, чтобы он начинался с odd
.
{% for blog in blogs %}
{% for entry in blog.entries %}
<div class="{% cycle 'odd' 'even' %}" id="{{entry.id}}">
{{entry.text}}
</div>
{% endfor %}
{% endfor %}
Я попытался устранить это, исправляя тег resetcycle
, предлагаемый здесь:
Билет Django: тег цикла должен reset после выхода из рамки
безрезультатно. (Код не работал у меня.)
Я также попытался переместить мой внутренний цикл в пользовательский тег, но это также не сработало, возможно, потому, что цикл компиляции/рендеринга перемещает цикл обратно во внешний цикл? (Независимо от того, почему, это не сработало для меня.)
Как я могу выполнить эту простую задачу!? Я бы предпочел не создавать структуру данных в моем представлении с этой предварительно скомпилированной информацией; что кажется ненужным. Спасибо заранее.