Django for 标签

For 循环

for 循环用于在序列上迭代,就像在数组或字典中的项上循环一样。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li>{{ x.firstname }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • Emil
  • Tobias
  • Linus
  • Lene
  • Stalikken

Reversed

reversed 关键字被用于以相反的顺序进入循环。

实例
  1. <ul>
  2. {% for x in mymembers reversed %}
  3. <li>{{ x.firstname }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • Stalikken
  • Lene
  • Linus
  • Tobias
  • Emil

Empty

empty 关键字用于在对象为空时执行特殊操作。

实例
  1. <ul>
  2. {% for x in emptytestobject %}
  3. <li>{{ x.firstname }}</li>
  4. {% empty %}
  5. <li>No members</li>
  6. {% endfor %}
  7. </ul>
结果
  • No members

循环变量

Django 在循环中提供了一些变量:

  • forloop.counter
  • forloop.counter0
  • forloop.first
  • forloop.last
  • forloop.parentloop
  • forloop.revcounter
  • forloop.revcounter0

forloop.counter

当前迭代,从 1 开始。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li>{{ forloop.counter }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • 1
  • 2
  • 3
  • 4
  • 5

forloop.counter0

当前迭代,从 0 开始。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li>{{ forloop.counter0 }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • 0
  • 1
  • 2
  • 3
  • 4

forloop.first

让您可以判断循环是否在第一次迭代中。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li
  4. {% if forloop.first %}
  5. style='background-color:lightblue;'
  6. {% endif %}
  7. >{{ x.firstname }}</li>
  8. {% endfor %}
  9. </ul>
结果
  • Emil
  • Tobias
  • Linus
  • Lene
  • Stalikken

forloop.last

让您可以判断循环是否在最后一次迭代中。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li
  4. {% if forloop.last %}
  5. style='background-color:lightblue;'
  6. {% endif %}
  7. >{{ x.firstname }}</li>
  8. {% endfor %}
  9. </ul>
结果
  • Emil
  • Tobias
  • Linus
  • Lene
  • Stalikken

forloop.revcounter

当前迭代如果从末尾开始并反向计数,最后返回 1。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li>{{ forloop.revcounter }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • 5
  • 4
  • 3
  • 2
  • 1

forloop.revcounter0

当前迭代如果从末尾开始并反向计数,最后返回 0。

实例
  1. <ul>
  2. {% for x in mymembers %}
  3. <li>{{ forloop.revcounter0 }}</li>
  4. {% endfor %}
  5. </ul>
结果
  • 4
  • 3
  • 2
  • 1
  • 0