Jinja2 Django Python groupby(';attribute';)自定义排序的石斑鱼

Jinja2 Django Python groupby(';attribute';)自定义排序的石斑鱼,python,django,jinja2,Python,Django,Jinja2,因此,我有一个Jinja2模板,我正在使用Django。我已经设置了一个for循环,它执行一个groupby('attribute')。有什么方法可以让我定制一种石斑鱼套餐吗。下面是模板代码 {% for group in data('attribute')|groupby('property') %} {{ group.grouper }} {% for item in group.list %} {{ item }} {% en

因此,我有一个Jinja2模板,我正在使用Django。我已经设置了一个for循环,它执行一个groupby('attribute')。有什么方法可以让我定制一种石斑鱼套餐吗。下面是模板代码

{% for group in data('attribute')|groupby('property') %}
    {{ group.grouper }}
        {% for item in group.list %}
            {{ item }}
        {% endfor %}
{% endfor %}
我想做一些类似的事情:

for group in data('attribute')|groupby('property')|CUSTOM ORDERING SCHEME GOES HERE
我知道有可能做到:

for group in data('attribute')|groupby('property')|reverse

因此,我认为这是可能的。

根据文档返回一个元组,因此您可以通过访问元组的第一个元素进行排序:

for group in data('attribute')|groupby('property')|sort(attribute='0', reverse=True)
这将与常规的
|反转操作相同

但如果您按某个对象分组,并希望按该对象的属性对其进行排序,例如,
property
是这样的数据类:

@dataclass
class InventoryItem:
    name: str
    unit_price: float
可以按
单价进行排序,例如:

for group in data('attribute')|groupby('property')|sort(attribute='0.unit_price', reverse=True)
请记住,若模板中的逻辑变得复杂,也许是时候进行重构了