Есть ли способ подсчитать отсортированный набор запросов, используя счетчик вместо длины? - PullRequest
0 голосов
/ 11 июля 2020

Я работаю над поисковой частью своего проекта. В одном из моих фильтров я должен использовать функцию sorted(). Код: -

posts = Post.objects.filter(title__icontains=query)
posts = sorted(posts, key=lambda obj: obj.titleFilter())

Но в других фильтрах проекта мне не нужно использовать сортировку, так как это можно сделать с помощью django annotate и так далее. Итак, в шаблоне мне обычно приходится использовать posts.count, за исключением фильтра заголовка.

Мой шаблон, код: -

<div>{{ posts.count }} results found.</div>

Я знаю, я могу использовать if case в шаблоне для работы и применения функции length, например:

<div>
    {% if title_filter %}
        {{ posts|length }}
    {% else %}
        {{ posts.count }}
    {% endif %} results found.
</div>

Кроме того, я не уверен, подойдет ли длина, поскольку была некоторая статья, в которой нельзя использовать length для наборов запросов.

Спасибо!!! Не стесняйтесь спрашивать.

1 Ответ

1 голос
/ 11 июля 2020

После сортировки сообщений больше не является QuerySet. Вы можете сделать это

posts = Post.objects.filter(title__icontains=query)
count = posts.count()
posts = sorted(posts, key=lambda obj: obj.titleFilter())

количество отправлений в виде переменной

...