I am trying to do this:
{% for movie in movie_list | sort(movie.rating) %}
But that's not right...the documentation is vague...how do you do this in Jinja2?
I am trying to do this:
{% for movie in movie_list | sort(movie.rating) %}
But that's not right...the documentation is vague...how do you do this in Jinja2?
Usually we sort the list before giving it to Jinja2. There's no way to specify a key in Jinja's sort
filter.
However, you can always try {% for movie in movie_list|sort %}
. That's the syntax. You don't get to provide any sort of key information for the sorting.
You can also try and write a custom filter for this. Seems silly when you can sort before giving the data to Jinja2.
If movie_list
is a list of objects, then you can define the various comparison methods (__lt__
, __gt__
, etc.) for the class of those objects.
If movie_list
is a list of tuples or lists, the rating must be first. Or you'll have to do the sorting outside Jinja2.
If movie_list
is a list of dictionaries, then you can use dictsort
, which does accept a key specification for the sorting. Read this: http://jinja.pocoo.org/2/documentation/templates#dictsort for an example.