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 %}
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 | 
 
 
