ifchanged Template Tag
Example
Loop through a list, but display the value only if it has changed since the last iteration:
<ul>
{% for x in mylist %}
{% ifchanged %}
<li>{{ x }}</li>
{% endifchanged %}
{% endfor %}
</ul>
Run Example »
Definition and Usage
The ifchanged
tag allows you to check a
value in a loop and output a code if the value has changed
since the last iteration.
If the iteration object has many values per iteration, you can specify which value to check, and the block of code will only displayed if that value has changed since the last iteration:
Example
Loop through the members object and check if the
brand
property has changed:
{% for x in cars %}
{% ifchanged x.brand %}
<h1>{{ x.brand }}:</h1>
{% endifchanged %}
<p>{{ x.model }}, {{ x.year }}</p>
{% endfor %}
Run Example »
You can also define an {% else %} clause for content that should be displayed if the value has not changed:
Example
Loop through a list and write different messages if the value has changed or not:
{% for x in mylist %}
{% ifchanged %}
<p>New value: {{ x }}</p>
{% else %}
<p>Same value: {{ x }}</p>
{% endifchanged %}
{% endfor %}
Run Example »
Syntax
{% ifchanged property %}
...
{% endifchanged %}
Parameters
Value | Description |
---|---|
property | Optional. Specifies which property that needs to have changed to display the content. |