regroup 模板标签
示例
显示所有汽车,每个品牌一个新标题
{% 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 %}
运行示例 »
定义和用法
The regroup
标签返回一个根据指定值分组的新对象。
结果被划分为每个组一个 GroupedResult
对象,使得上面示例中的 newlist
对象看起来像这样
示例
{% 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'
}
]
)
]
注意:在重新分组之前,确保对象已正确排序,否则您最终将得到具有相同 grouper
名称的组。
语法
{% regroup object by object.property as newname %}
参数
值 | 描述 |
---|---|
object | 必需。要重新分组的列表或对象 |
object.property | 必需。要根据其分组的属性的名称 |
newname | 必需。返回对象的新的名称 |