From 089cadeae304c20bc45e4f40139ef72cf36cfe56 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 28 Nov 2023 12:04:03 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=20queryset=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/rewriting/pagination.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/jumpserver/rewriting/pagination.py b/apps/jumpserver/rewriting/pagination.py index a924d854a..cd38fd0ba 100644 --- a/apps/jumpserver/rewriting/pagination.py +++ b/apps/jumpserver/rewriting/pagination.py @@ -1,6 +1,13 @@ from django.conf import settings +from django.core.exceptions import FieldError from rest_framework.pagination import LimitOffsetPagination class MaxLimitOffsetPagination(LimitOffsetPagination): max_limit = settings.MAX_LIMIT_PER_PAGE + + def get_count(self, queryset): + try: + return queryset.values_list('id').order_by().count() + except (AttributeError, TypeError, FieldError): + return len(queryset)