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]