From 3a224eafece99f5b4ae559a8b4014fc702f5ac35 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 11 Oct 2023 16:38:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0filter=5Fcustom?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E6=97=B6=E5=8F=AF=E5=A4=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/viewsets.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/utils/viewsets.py b/apps/utils/viewsets.py index 981f2ca3..9fc0ce84 100755 --- a/apps/utils/viewsets.py +++ b/apps/utils/viewsets.py @@ -85,6 +85,14 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet): for k, v in self.perms_map.items(): if v not in ALL_PERMS and v != '*': ALL_PERMS.append(v) + if not hasattr(self, 'filterset_fields'): + self.filterset_fields = self.select_related_fields + + def filter_custom(self, queryset): + """ + 自定义过滤方法可复写 + """ + return queryset def get_queryset(self): queryset = super().get_queryset() @@ -92,7 +100,7 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet): queryset = queryset.select_related(*self.select_related_fields) if self.prefetch_related_fields: queryset = queryset.prefetch_related(*self.prefetch_related_fields) - self.filter_customer(queryset) + queryset = self.filter_custom(queryset) if self.data_filter: user = self.request.user if user.is_superuser: @@ -129,11 +137,6 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet): return queryset.none() return queryset - def filter_custom(self, queryset): - """自定义过滤逻辑需要的时候可重写 - """ - pass - def filter_s_a_b(self, queryset, dept): """过滤同级及以下, 可重写 """