Jinja2 Django Python groupby(';attribute';)自定义排序的石斑鱼
因此,我有一个Jinja2模板,我正在使用Django。我已经设置了一个for循环,它执行一个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
{% 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)
请记住,若模板中的逻辑变得复杂,也许是时候进行重构了