Как проверить последнюю итерацию цикла в шаблоне Django?

101

У меня есть базовый вопрос, как на языке шаблонов Django узнать, находитесь ли вы на последней итерации forцикла?

Даниэль Киватинос
источник

Ответы:

229

Вы бы использовали forloop.last. Например:

<ul>
{% for item in menu_items %}
    <li{% if forloop.last %} class='last'{% endif %}>{{ item }}</li>
{% endfor %}
</ul>
Паоло Бергантино
источник
2
Если есть вложенные циклы, будет ли он проверять самый внутренний цикл?
Tagar
4
Это особенность более новой версии Jinja? Получение "рендеринга шаблона: 'forloop' не определено" на {% , если нет (forloop.last)%}, {% ENDIF%}
Tagar
1
Если есть вложенные циклы, используйте forloop.parentloopдля доступа к циклу, окружающему текущий. Итак, чтобы проверить последнюю итерацию родительского цикла, можно использовать forloop.parentloop.last. См. Документацию . @Tagar
ndmeiri
Итак, вкратце, forloop.lastпроверим последнюю итерацию самого внутреннего цикла.
ndmeiri