We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
get_count
1 parent 4911f49 commit e8b2300Copy full SHA for e8b2300
styleguide_example/api/pagination.py
@@ -24,6 +24,23 @@ class LimitOffsetPagination(_LimitOffsetPagination):
24
default_limit = 10
25
max_limit = 50
26
27
+ def get_count(self, queryset) -> int:
28
+ """
29
+ Determine an object count, supporting either querysets or regular lists.
30
31
+ try:
32
+ # We remove the prefetches in order to optimize the queryset
33
+ clone = queryset._clone() # type: ignore
34
+ return (
35
+ clone.prefetch_related(None)
36
+ .select_related(None)
37
+ .only("pk")
38
+ .values_list("pk")
39
+ .count()
40
+ )
41
+ except (AttributeError, TypeError):
42
+ return len(queryset)
43
+
44
def get_paginated_data(self, data):
45
return OrderedDict([
46
('limit', self.limit),
0 commit comments