[英]Sort list of objects with Jinja2 and Flask depending the field pressed
我在Flask中有一個名為Dog的模型,其中包含參數Name,Breed和Age。 通過Jinja2,我在模板中顯示如下:
<table>
<tr>
<td>Name</td>
<td>Breed</td>
<td>Age</td>
</tr>
{% for dog in dogs_list %}
<tr>
<td>{{ dog.name }}</td>
<td>{{ dog.breed }}</td>
<td>{{ dog.age }}</td>
</tr>
{% endfor %}
</table>
我的想法是,如果用戶按名稱,該表將顯示按名稱排序的對象。 與品種和年齡相同。 Jinja中有一個按參數排序的過濾器,例如“name”:
{% for dog in dogs_list|sort(attribute='name') %}
但我不想提出一個固定的屬性,它應該改為“繁殖”或“年齡”。 我可以用Jinja2做到嗎? 我也應該使用Flask嗎? 我可以用JavaScript在Jinja2中設置值嗎?
謝謝!
該屬性不需要是固定字符串,它也可以是請求參數:
{% set sort_on = request.args.sort_on|default('name') %}
{% for dog in dogs_list|sort(attribute=sort_on) %}
這將查找GET參數sort_on
(默認為'name'
),然后使用該值對dogs_list
進行排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.