Used within a loop to output something if one or more values has changed since the last loop iteration.
Variable
foods = [
{'name': 'Apple', 'category': 'Fruit'},
{'name': 'Banana', 'category': 'Fruit'},
{'name': 'Grape', 'category': 'Fruit'},
{'name': 'Hamburger', 'category': 'Meat'},
{'name': 'Pepper', 'category': 'Vegetable'},
{'name': 'Corn', 'category': 'Vegetable'}
]
Template
{% for food in foods %}
{% ifchanged food.category %}<h3>{{ food.category }}</h3>{% endifchanged %}
<p>{{ food.name }}</p>
{% endfor %}
Result
<h3>Fruit</h3> <p>Apple</p> <p>Banana</p> <p>Grape</p> <h3>Meat</h3> <p>Hamburger</p> <h3>Vegetable</h3> <p>Pepper</p> <p>Corn</p>
Notice that the h3 elements only get inserted if the category has changed since the previous iteration.
