regroup Template Tag
Example
Display all the cars with a new header for each brand:
{% regroup cars by brand as newlist %}
{% for x in newlist %}
<h1>{{ x.grouper }}</h1>
{% for y in x.list %}
<p>{{ y.model }}: {{ y.year }}</p>
{% endfor %}
{% endfor %}
Run Example »
Definition and Usage
The regroup
tag returns a new object grouped
by a specified value.
The result is divided into one GroupedResult
object for each group, making the newlist
object from the example above, looking like this:
Example
The result from {% regroup cars by brand as
newlist %}
:
[
GroupedResult(
grouper='Ford',
list=[
{
'brand': 'Ford',
'model': 'Mustang',
'year': '1964'
},
{
'brand': 'Ford',
'model': 'Bronco',
'year': '1970'
},
{
'brand': 'Ford',
'model': 'Sierra',
'year': '1981'
}
]
),
GroupedResult(
grouper='Volvo',
list=[
{
'brand': 'Volvo',
'model': 'XC90',
'year': '2016'
},
{
'brand': 'Volvo',
'model': 'P1800',
'year': '1964'
}
]
)
]
Note: Make sure the object is sorted correctly before regrouping,
otherwise you will end up with groups with the same grouper
name.
Syntax
{% regroup object by object.property as newname %}
Parameters
Value | Description |
---|---|
object | Required. A list or object taht you want to regroup |
object.property | Required. The name of the property you want to group by |
newname | Required. A new name for the returned object |