我试图在django模板中的for循环中按字典值分组。你知道吗
我的模板如下:
<div id="engines-rows">
{% for engine in engines %}
<h3>{{ engine }}</h3>
{% endfor %}
</div>
我得到的结果如下:
{'id': 8, 'name': '2.0 TFSI', 'fuel_type': 'PETROL', 'displacement_cc': 1984, 'power_hp': 188, 'power_ps': 190, 'power_kw': 140}
{'id': 7, 'name': '2.0 TDI', 'fuel_type': 'DIESEL', 'displacement_cc': 1968, 'power_hp': 181, 'power_ps': 184, 'power_kw': 135}
{'id': 6, 'name': '2.0 TDI', 'fuel_type': 'DIESEL', 'displacement_cc': 1968, 'power_hp': 148, 'power_ps': 150, 'power_kw': 110}
{'id': 5, 'name': '1.6 TDI', 'fuel_type': 'DIESEL', 'displacement_cc': 1598, 'power_hp': 109, 'power_ps': 110, 'power_kw': 81}
{'id': 4, 'name': '1.4 TFSI g-tron', 'fuel_type': 'CNG', 'displacement_cc': 1395, 'power_hp': 109, 'power_ps': 110, 'power_kw': 81}
{'id': 3, 'name': '1.4 TFSI e-tron', 'fuel_type': 'ELECTRICITY', 'displacement_cc': 1395, 'power_hp': 148, 'power_ps': 150, 'power_kw': 110}
{'id': 2, 'name': '1.4 TFSI', 'fuel_type': 'PETROL', 'displacement_cc': 1395, 'power_hp': 148, 'power_ps': 150, 'power_kw': 110}
{'id': 1, 'name': '1.0 TFSI', 'fuel_type': 'PETROL', 'displacement_cc': 999, 'power_hp': 114, 'power_ps': 116, 'power_kw': 85}
我想按燃料类型分组,因此我想看到如下内容:
汽油机
名称:2.0 TFSI--排量\u cc:1984--功率\u hp:188--功率\u ps:190--功率\u kw:140 名称:1.4 TFSI--排量\u cc:1395--功率\u hp:148--功率\u ps:150--功率\u kw:110 ........ 你知道吗
柴油机
名称:2.0 TDI--排量\u cc:1968--功率\u hp:181--功率\u ps:184--功率\u kw:135 名称:2.0 TDI--排量\u cc:1968--功率\u hp:148--功率\u ps:150--功率\u kw:110 .... 你知道吗
。。。。。。。。。。。。你知道吗
我不能这样做
<div id="engines-rows">
{% for engine in engines %}
{% if engine.fuel_type == "PETROL" %}
# Do something
{% endif %}
{% if engine.fuel_type == "DIESEL" %}
# Do something
{% endif %}
# And so on
{% endfor %}
</div>
但是我可以动态地做它,我不想为每种燃料类型添加if。你知道吗
谢谢
我会考虑在你看来准备数据。你知道吗
现在您的模板可以保持简单的方式。你知道吗
基本结构如下所示:
regroup
标记也应该起作用,但是将逻辑放到视图中感觉更接近Django对模板和逻辑的一般态度:只需贴出IlyaV.Schurov评论中提到的样本
我的解决方法如下:
李彦宏的解决方案给了我:
汽油机
名称:2.0 TFSI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140
柴油机
名称:2.0 TDI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140 名称:2.0 TDI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140 名称:1.6 TDI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140
压缩天然气
名称:1.4 TFSI g-tron排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140
电力
名称:1.4 TFSI电子管位移\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140
汽油机
名称:1.4 TFSI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140 名称:1.0 TFSI排量\u cc:1984功率\u hp:188功率\u ps:190功率\u kw:140
那不是我想要的。你知道吗
In the docs (the link that Ilya V. Schurov posted)如果您的数据位于字典列表中,则解决方案是使用dictsort筛选器对模板中的数据进行排序:
相关问题 更多 >
编程相关推荐