ifchanged 模板标签

实例

循环遍历一个列表,但仅当它自上次迭代以来发生变化时才显示该值:

<ul>
  {% for x in mylist %}
    {% ifchanged %}
      <li>{{ x }}</li>
    {% endifchanged %}
  {% endfor %}
</ul>
运行实例 »

定义和用法

ifchanged 标签允许您在循环中检查一个值,并在该值自上次迭代后发生变化时输出代码。

如果迭代对象每次迭代有很多值,您可以指定要检查哪个值,并且仅当该值自上次迭代以来发生更改时才会显示代码块:

实例

遍历 members 对象并检查 brand 属性是否已更改:

{% for x in cars %}
  {% ifchanged x.brand %}
    <h1>{{ x.brand }}:</h1>
  {% endifchanged %}
  <p>{{ x.model }}, {{ x.year }}</p>
{% endfor %}
运行实例 »

您还可以为值未更改时应显示的内容定义 {% else %} 子句:

实例

遍历一个列表并在值是否改变时写入不同的消息:

{% for x in mylist %}
  {% ifchanged %}
    <p>New value: {{ x }}</p>
  {% else %}
    <p>Same value: {{ x }}</p>
  {% endifchanged %}
{% endfor %}
运行实例 »

语法

{% ifchanged property %}
...
{% endifchanged %}

参数

描述说明
property 可选。 指定需要更改哪个属性才能显示内容。