feat: 增加filter_custom必要时可复写

This commit is contained in:
caoqianming 2023-10-11 16:38:33 +08:00
parent 56ed286eaf
commit 3a224eafec
1 changed files with 9 additions and 6 deletions

View File

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