簡體   English   中英

根據按下的字段對Jinja2和Flask的對象列表進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM