odd get_template even async python sorting jinja2

python - get_template - jinja2 list



¿Cómo se ordena una lista en Jinja2? (3)

Estoy tratando de hacer esto:

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

Pero eso no está bien ... la documentación es vaga ... ¿cómo haces esto en Jinja2?


A partir de la versión 2.6, el filtro de clasificación integrado de Jinja2 le permite especificar un atributo para ordenar por:

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

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


Por lo general, ordenamos la lista antes de dársela a Jinja2. No hay forma de especificar una clave en el filtro de sort de Jinja.

Sin embargo, siempre puedes probar {% for movie in movie_list|sort %} . Esa es la sintaxis. No puede proporcionar ningún tipo de información clave para la clasificación.

También puede intentar y escribir un filtro personalizado para esto. Parece tonto cuando puedes ordenar antes de dar los datos a Jinja2.

Si movie_list es una lista de objetos, puede definir los diversos métodos de comparación ( __lt__ , __gt__ , etc.) para la clase de esos objetos.

Si movie_list es una lista de tuplas o listas, la calificación debe ser primero. O tendrás que hacer la clasificación fuera de Jinja2.

Si movie_list es una lista de diccionarios, puede usar dictsort , que acepta una especificación de clave para la clasificación. Lea esto: http://jinja.pocoo.org/2/documentation/templates#dictsort para ver un ejemplo.


Si desea ordenar en orden ascendente

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

Si desea ordenar en orden descendente

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