Django queryset count(*) over()

Какова будет соответствующая функция django queryset для count(*) over() в sql, где вы получите подсчет общего количества записей для запроса вместе с отдельными строками

select *,count(*) over() from users offset 2 limit 2

Я использую

queryset.values()[offset:limit]

Как модифицировать его, чтобы он служил указанной цели?

Вы можете сделать over clause, используя Window expression
. в вашей ситуации это можно использовать следующим образом:

from django.db.models.expressions import Window
from django.db.models import Count

queryset.annotate(total_records=Window(Count('pk')))

для использования нарезки в качестве смещения и ограничения, это должно выглядеть как [offset:offset+limit]

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