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): """过滤同级及以下, 可重写 """