如何在Jinja2中sorting列表?
我正在尝试这样做:
{% for movie in movie_list | sort(movie.rating) %}
但是这是不正确的…文件是模糊的…你怎么在Jinja2做这个?
从版本2.6开始,Jinja2的内置sortingfilter允许您指定一个属性来sorting:
{% for movie in movie_list|sort(attribute='rating') %}
通常我们在把它给予Jinja2之前对它们进行sorting。 Jinja的sort
filter没有办法指定一个键。
但是,您可以随时在{% 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) %}