[英]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') %}
如果要按升序排序
{% 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.