1. forloop.counter从1开始叠加
{% for item in items %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
2. forloop.counter0从0开始叠加
{% for item in items %}
<p>{{ forloop.counter0}}: {{ item }}</p>
{% endfor %}
3. forloop.first 是个布尔值,第一次循环时为 True
{% for object in objects %}
{% if forloop.first %}
<li class="first">
{% else %}
<li>
{% endif %}
{{ object }}
</li>
{% endfor %}
4. forloop.last是个布尔值,最后一次循环时为True
{% for link in links %}
{{ link }}{% if not forloop.last %} | {% endif %}
{% endfor %}
<p>Favorite places:</p>
{% for p in places %}
{{ p }}{% if not forloop.last %}, {% endif %}
{% endfor %}
5. forloop.parentloop
在嵌套的循环中, forloop.parentloop引用父级循环的 forloop 对象。
{% for country in countries %}
<table>
{% for city in country.city_list %}
<tr>
<td>Country #{{ forloop.parentloop.counter }}</td>
<td>City #{{ forloop.counter }}</td>
<td>{{ city }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}
6. forloop.revcounter
forloop.revcounter的值是一个整数,表示循环中剩余的元素数量。第一次循环时, forloop.revcounter 的值是序列中要遍历的元素总数。最后一次循环时, forloop.revcounter的值为 1
7.forloop.revcounter0
forloop.revcounter0 与 forloop.revcounter类似,不过索引是基于零的。第一次循环时, forloop.revcounter0的值是序列中元素数量减去一。最后一次循环时, forloop.revcounter0 的值为 0 。