Можно ли сортировать querydict в шаблонах?

В моем шаблоне у меня есть:

{% for user in users %}
  <tr>
    <td>
      <div class="info">
        <h4>{{ user.name }}</h4>
        <h5>{{ user.age }}</h5>
      </div>
    </td>
  </tr>
{% endfor %}

Usual {% for user in users|dictsort:"user.name" %} не работает, так как users является кверисетом. Есть ли способ отобразить это в сортированном порядке в шаблоне, не трогая бэкенд?

А values queryset будет содержать словари, которые затем можно передать в dictsort. Поскольку в этом цикле перебираются словари, а не объекты пользователя, вы не сможете отслеживать внешние ключи или вызывать методы, используя этот подход

{% for user in users.values|dictsort:"name" %}
  <tr>
    <td>
      <div class="info">
        <h4>{{ user.name }}</h4>
        <h5>{{ user.age }}</h5>
      </div>
    </td>
  </tr>
{% endfor %}

EDIT: make_list преобразует переданный объект в строку, прежде чем сделать его списком, поэтому он не будет работать. Я подозреваю, что вы можете просто передавать значения queryset в dictsort

Вернуться на верх