代码之家  ›  专栏  ›  技术社区  ›  Nick Perkins

如何在Jinja2中对列表进行排序?

  •  63
  • Nick Perkins  · 技术社区  · 16 年前

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

    但这是不对的…文档是模糊的…在Jinja2中如何做到这一点?

    3 回复  |  直到 16 年前
        1
  •  186
  •   Steve S    15 年前

    从2.6版开始,Jinja2的内置排序过滤器允许您指定排序依据的属性:

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

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

        2
  •  31
  •   SumanKalyan    9 年前

    如果要按升序排序

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

    如果要按降序排序

    {% for movie in movie_list|sort(attribute='rating', reverse = True) %}
    
        3
  •  14
  •   S.Lott    16 年前

    sort 过滤器。

    {% for movie in movie_list|sort %} . 这就是语法。您不需要为排序提供任何类型的关键信息。

    您还可以尝试为此编写自定义筛选器。在将数据提供给Jinja2之前进行排序似乎很愚蠢。

    movie_list 是一个对象列表,然后可以定义各种比较方法( __lt__ , __gt__

    如果 电影列表 是元组或列表的列表,评级必须为第一。否则你就得在Jinja2外面进行分拣。

    如果 电影列表 dictsort ,它接受用于排序的密钥规范。请阅读以下内容: http://jinja.pocoo.org/2/documentation/templates#dictsort