Tutorials References Exercises Videos Menu
Free Website Get Certified Upgrade

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.