복붙노트

[PYTHON] Jinja2에서 어떻게 목록을 정렬합니까?

PYTHON

Jinja2에서 어떻게 목록을 정렬합니까?

나는 이것을하려고 노력하고있다 :

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

하지만 그게 옳지 않습니다. 설명서가 막연합니다 ... Jinja2에서 어떻게합니까?

해결법

  1. ==============================

    1.버전 2.6부터 Jinja2의 내장 정렬 필터를 사용하면 다음과 같이 정렬 할 속성을 지정할 수 있습니다.

    버전 2.6부터 Jinja2의 내장 정렬 필터를 사용하면 다음과 같이 정렬 할 속성을 지정할 수 있습니다.

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

    http://jinja.pocoo.org/docs/templates/#sort를 참조하십시오.

  2. ==============================

    2.보통 우리는 Jinja2에 그것을주기 전에 목록을 정렬합니다. Jinja의 정렬 필터에서 키를 지정할 방법이 없습니다.

    보통 우리는 Jinja2에 그것을주기 전에 목록을 정렬합니다. Jinja의 정렬 필터에서 키를 지정할 방법이 없습니다.

    그러나, 당신은 항상 movie_list | sort %}에서 {% for movie_list}를 시도 할 수 있습니다. 그것이 구문입니다. 정렬을위한 주요 정보를 제공하지 않아도됩니다.

    이를 위해 사용자 정의 필터를 작성하고 작성할 수도 있습니다. Jinja2에 데이터를 보내기 전에 정렬 할 수있을 때 어리석은 것처럼 보입니다.

    movie_list가 객체 목록 인 경우 해당 객체의 클래스에 대한 다양한 비교 방법 (__lt__, __gt__ 등)을 정의 할 수 있습니다.

    movie_list가 튜플 또는 목록의 목록 인 경우 등급이 가장 먼저 나와야합니다. 아니면 Jinja2 외부에서 정렬 작업을 수행해야합니다.

    movie_list가 사전 목록이면 dictsort를 사용할 수 있습니다. dictsort는 정렬에 대한 주요 사양을 허용합니다. 예를 들어 http://jinja.pocoo.org/2/documentation/templates#dictsort를 읽어보십시오.

  3. ==============================

    3.오름차순으로 정렬하려는 경우

    오름차순으로 정렬하려는 경우

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

    내림차순으로 정렬하려는 경우

    {% for movie in movie_list|sort(attribute='rating', reverse = True) %}
    
  4. from https://stackoverflow.com/questions/1959386/how-do-you-sort-a-list-in-jinja2 by cc-by-sa and MIT license