[python] 你如何在Jinja2中對列表進行排序?


Answers

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

但是,您可以隨時嘗試{% for movie in movie_list|sort %} 。 這就是語法。 您無法為排序提供任何類型的關鍵信息。

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

如果movie_list是一個對象列表,那麼您可以為這些對象的類定義各種比較方法( __lt____gt__等)。

如果movie_list是元組或列表的列表,則必須先評級。 或者你必須在Jinja2之外進行排序。

如果movie_list是字典列表,那麼您可以使用dictsort ,它接受排序的密鑰規範。 請閱讀: http://jinja.pocoo.org/2/documentation/templates#dictsorthttp://jinja.pocoo.org/2/documentation/templates#dictsort作為示例。

Question

我想這樣做:

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

但那不對......文檔含糊不清......你怎麼在Jinja2做到這一點?




Related