簡體   English   中英

您如何在Jinja2中對列表進行排序?

[英]How do you sort a list in Jinja2?

我正在嘗試這樣做:

 {% for movie in movie_list | sort(movie.rating) %}

但這不對...文檔模糊不清...您如何在Jinja2中做到這一點?

從2.6版開始,Jinja2的內置排序過濾器允許您指定一個屬性以進行排序:

{% for movie in movie_list|sort(attribute='rating') %}

參見http://jinja.pocoo.org/docs/templates/#sort

如果要按升序排序

{% for movie in movie_list|sort(attribute='rating') %}

如果要按降序排序

{% for movie in movie_list|sort(attribute='rating', reverse = True) %}

通常,我們在將列表提供給Jinja2之前對其進行排序。 無法在Jinja的sort過濾器中指定鍵。

但是,您始終可以嘗試{% for movie in movie_list|sort %} 這就是語法。 您不會為排序提供任何關鍵信息。

您也可以嘗試為此編寫一個自定義過濾器。 在將數據提供給Jinja2之前可以進行排序時似乎很愚蠢。

如果movie_list是對象列表, __gt__這些對象的類定義各種比較方法( __lt____gt__等)。

如果movie_list是元組或列表的列表,則等級必須為第一。 否則,您將不得不在Jinja2之外進行排序。

如果movie_list是詞典列表,則可以使用dictsort ,它確實接受用於排序的鍵規范。 閱讀此示例: http : //jinja.pocoo.org/2/documentation/templates#dictsort

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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