Django cycle 迭代标签
迭代
cycle
标签允许您针对不同的迭代执行不同的任务。
cycle
标签接受参数,第一次迭代使用第一个参数,第二次迭代使用第二个参数等等。
{% cycle 'lightblue' 'pink' 'yellow' 'coral' 'grey' %}
如果您想为每次迭代使用新的背景颜色,您可以使用 cycle
标签:
实例
<ul>
{% for x in members %}
<li style='background-color:{% cycle 'lightblue' 'pink' 'yellow' 'coral' 'grey' %}'>
{{ x.firstname }}
</li>
{% endfor %}
</ul>
运行实例 »
如果迭代到达参数的末尾,它会重新开始:
实例
<ul>
{% for x in members %}
<li style='background-color:{% cycle 'lightblue' 'pink' %}'>
{{ x.firstname }}
</li>
{% endfor %}
</ul>
运行实例 »
迭代参数作为变量
在第一个示例中,参数值直接显示在循环中,但您也可以将参数值保存在变量中,以便以后使用:
实例
将颜色值存储在一个名为 bgcolor 的变量中,然后在迭代中将其用作背景颜色:
<ul>
{% for x in members %}
{% cycle 'lightblue' 'pink' 'yellow' 'coral' 'grey' as bgcolor silent %}
<li style='background-color:{{ bgcolor }}'>
{{ x.firstname }}
</li>
{% endfor %}
</ul>
运行实例 »
您注意到 silent
关键字了吗? 确保添加这个,否则参数值将在输出中显示两次:
实例
与上面的示例相同,但没有 silent
关键字:
<ul>
{% for x in members %}
{% cycle 'lightblue' 'pink' 'yellow' 'coral' 'grey' as bgcolor %}
<li style='background-color:{{ bgcolor }}'>
{{ x.firstname }}
</li>
{% endfor %}
</ul>
运行实例 »
重置迭代
您可以使用 {% resetcycle %}
标签强制迭代重新开始:
实例
3个迭代后重新开始迭代:
<ul>
{% for x in members %}
{% cycle 'lightblue' 'pink' 'yellow' 'coral' 'grey' as bgcolor silent %}
{% if forloop.counter == 3 %}
{% resetcycle %}
{% endif %}
<li style='background-color:{{ bgcolor }}'>
{{ x.firstname }}
</li>
{% endfor %}
</ul>
运行实例 »