Remove StripCountAnnotationsPaginator

This commit is contained in:
jeremystretch 2022-10-26 16:23:05 -04:00
parent 1d1bb2b793
commit fd1c8aa44a
2 changed files with 2 additions and 15 deletions

View File

@ -21,7 +21,6 @@ from ipam.models import Prefix, VLAN
from netbox.api.authentication import IsAuthenticatedOrLoginNotRequired
from netbox.api.exceptions import ServiceUnavailable
from netbox.api.metadata import ContentTypeMetadata
from netbox.api.pagination import StripCountAnnotationsPaginator, TwoModePagination
from netbox.api.viewsets import NetBoxModelViewSet
from netbox.config import get_config
from netbox.constants import NESTED_SERIALIZER_PREFIX
@ -398,7 +397,8 @@ class DeviceViewSet(ConfigContextQuerySetMixin, NetBoxModelViewSet):
'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'tags',
)
filterset_class = filtersets.DeviceFilterSet
pagination_class = partial(TwoModePagination, StripCountAnnotationsPaginator)
# TODO: Solve for #9374
# pagination_class = StripCountAnnotationsPaginator
def get_serializer_class(self):
"""

View File

@ -76,19 +76,6 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination):
return super().get_previous_link()
class StripCountAnnotationsPaginator(OptionalLimitOffsetPagination):
"""
Strips the annotations on the queryset before getting the count
to optimize pagination of complex queries.
"""
def get_queryset_count(self, queryset):
# Clone the queryset to avoid messing up the actual query
cloned_queryset = queryset.all()
cloned_queryset.query.annotations.clear()
return cloned_queryset.count()
class CursorPaginationWithNoLimit(CursorPagination):
"""
Allow setting limit=0 to disable pagination for a request. The limit can only be disabled if