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 %}
运行示例 »
定义和用法
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 | 必需。返回对象的名称 |