修改部门管理

This commit is contained in:
xie7654
2025-06-30 17:33:47 +08:00
parent f6e68e37c8
commit bfe190ef74
9 changed files with 260 additions and 38 deletions

View File

@@ -38,19 +38,19 @@ class CustomModelViewSet(viewsets.ModelViewSet):
def list(self, request, *args, **kwargs):
"""重写列表视图,支持软删除过滤"""
queryset = self.get_queryset()
# 应用软删除过滤
if self.enable_soft_delete:
queryset = queryset.filter(**{self.soft_delete_field: False})
# 应用搜索和过滤
queryset = self.filter_queryset(queryset)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
# 判断是否传了 page 参数
if 'page' in request.query_params:
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
# 没有 page 参数,返回全部数据
serializer = self.get_serializer(queryset, many=True)
return self._build_response(
data=serializer.data,

View File

@@ -10,6 +10,7 @@ from django.core.paginator import InvalidPage
class CustomPagination(PageNumberPagination):
page_size = 20
page_query_param = 'page' # 默认就是'page',如果你用别的名字要改成对应的
page_size_query_param = "pageSize"
max_page_size = 999
django_paginator_class = DjangoPaginator

View File

@@ -8,8 +8,6 @@ from rest_framework.serializers import ModelSerializer
from django.utils.functional import cached_property
from rest_framework.utils.serializer_helpers import BindingDict
from system.models import User
class CustomModelSerializer(ModelSerializer):
"""
@@ -18,16 +16,6 @@ class CustomModelSerializer(ModelSerializer):
"""
# 修改人的审计字段名称, 默认modifier, 继承使用时可自定义覆盖
modifier_field_id = 'modifier'
modifier_name = serializers.SerializerMethodField(read_only=True)
def get_modifier_name(self, instance):
if not hasattr(instance, 'modifier'):
return None
queryset = User.objects.filter(id=instance.modifier).values_list('name', flat=True).first()
if queryset:
return queryset
return None
# 创建人的审计字段名称, 默认creator, 继承使用时可自定义覆盖
creator_field_id = 'creator'
# 添加默认时间返回格式
@@ -43,16 +31,16 @@ class CustomModelSerializer(ModelSerializer):
def create(self, validated_data):
if self.request:
if self.modifier_field_id in self.fields.fields:
if self.modifier_field_id in self.fields:
validated_data[self.modifier_field_id] = self.get_request_username()
if self.creator_field_id in self.fields.fields:
if self.creator_field_id in self.fields:
validated_data[self.creator_field_id] = self.get_request_username()
return super().create(validated_data)
def update(self, instance, validated_data):
if self.request:
if hasattr(self.instance, self.modifier_field_id):
self.instance.modifier = self.get_request_username()
validated_data[self.modifier_field_id] = self.get_request_username()
return super().update(instance, validated_data)
def get_request_username(self):