Сортировка по длине в Джиндзя - PullRequest
0 голосов
/ 09 июля 2020

У меня есть таблица users, содержащая столбцы username и entries (отношение «один ко многим» с таблицей entries). В моем HTML файле я хочу отобразить имя пользователя и количество записей от конкретного пользователя.

Это выглядит так:

{% for i in users %}
<tr>
    <td>{{ i.username }}</td>
    <td>{{ i.entries|length }}</td>
</tr>
{% endfor %}

Я хочу отсортировать строки из пользователь, у которого наибольшее количество записей, к наименьшему.

Я пробую это, но это не работает:

{% for i in users|sort(entries|length) %}

Как мне этого добиться?

1 Ответ

0 голосов
/ 09 июля 2020

В идеале вы должны создать свой query-set в себе view, а в своем шаблоне вы можете получить к нему доступ следующим образом:

{% for user in users|sort(attribute="length")
<tr>
    <td>{{ user.username }}</td>
    <td>{{ user.entries|length }}</td>
</tr>
{% endfor %}

Используя атрибут length в вашем элементе, вы можете сделать это с помощью sort(attribute='length'). Взято из документации фильтра сортировки Jinja2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...