如何在Jinja2中sorting列表?

我正在尝试这样做:

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

但是这是不正确的…文件是模糊的…你怎么在Jinja2做这个?

从版本2.6开始,Jinja2的内置sortingfilter允许您指定一个属性来sorting:

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

请参阅http://jinja.pocoo.org/docs/templates/#sort

通常我们在把它给予Jinja2之前对它们进行sorting。 Jinja的sortfilter没有办法指定一个键。

但是,您可以随时在{% for movie in movie_list|sort %}尝试{% for movie in movie_list|sort %} 。 这是语法。 您无法提供任何sorting​​的关键信息。

您也可以尝试为此编写自定义filter。 在将数据提供给Jinja2之前,你可以分类看起来很愚蠢。

如果movie_list是一个对象列表,那么你可以为这些对象的类定义各种比较方法( __lt____gt__等)。

如果movie_list是元组或列表的列表,则评级必须是第一。 或者你必须在Jinja2之外进行sorting。

如果movie_list是一个字典列表,那么你可以使用dictsort ,它接受一个关键规范的sorting。 阅读: http : //jinja.pocoo.org/2/documentation/templates#dictsort为例。

如果你想按升序sorting

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

如果你想按降序sorting

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