88 lines
2.4 KiB
Python
88 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
@author: H0nGzA1
|
|
@contact: QQ:2505811377
|
|
@Remark: 部门管理
|
|
"""
|
|
from rest_framework import serializers
|
|
|
|
from dvadmin.system.models import Dept
|
|
from dvadmin.utils.json_response import SuccessResponse
|
|
from dvadmin.utils.serializers import CustomModelSerializer
|
|
from dvadmin.utils.viewset import CustomModelViewSet
|
|
|
|
|
|
class DeptSerializer(CustomModelSerializer):
|
|
"""
|
|
部门-序列化器
|
|
"""
|
|
parent_name = serializers.CharField(read_only=True, source='parent.name')
|
|
|
|
class Meta:
|
|
model = Dept
|
|
fields = '__all__'
|
|
read_only_fields = ["id"]
|
|
|
|
|
|
class DeptQuerySerializer(CustomModelSerializer):
|
|
"""
|
|
部门-序列化器
|
|
"""
|
|
parent_name = serializers.CharField(read_only=True, source='parent.name')
|
|
code = serializers.CharField(source='id')
|
|
|
|
class Meta:
|
|
model = Dept
|
|
fields = ['id', 'name', 'parent', 'parent_name', 'code']
|
|
read_only_fields = ["id"]
|
|
|
|
|
|
class DeptCreateUpdateSerializer(CustomModelSerializer):
|
|
"""
|
|
部门管理 创建/更新时的列化器
|
|
"""
|
|
|
|
def create(self, validated_data):
|
|
instance = super().create(validated_data)
|
|
instance.dept_belong_id = instance.id
|
|
instance.save()
|
|
return instance
|
|
|
|
class Meta:
|
|
model = Dept
|
|
fields = '__all__'
|
|
|
|
|
|
class DeptViewSet(CustomModelViewSet):
|
|
"""
|
|
部门管理接口
|
|
list:查询
|
|
create:新增
|
|
update:修改
|
|
retrieve:单例
|
|
destroy:删除
|
|
"""
|
|
queryset = Dept.objects.all()
|
|
serializer_class = DeptSerializer
|
|
create_serializer_class = DeptCreateUpdateSerializer
|
|
update_serializer_class = DeptCreateUpdateSerializer
|
|
filter_fields = ['name']
|
|
search_fields = []
|
|
# extra_filter_backends = []
|
|
|
|
# def list(self, request, *args, **kwargs):
|
|
# queryset = self.filter_queryset(self.get_queryset())
|
|
# page = self.paginate_queryset(queryset)
|
|
# if page is not None:
|
|
# serializer = self.get_serializer(page, many=True, request=request)
|
|
# return self.get_paginated_response(serializer.data)
|
|
# serializer = self.get_serializer(queryset, many=True, request=request)
|
|
# return SuccessResponse(data=serializer.data, msg="获取成功")
|
|
|
|
|
|
class DeptQueryViewSet(CustomModelViewSet):
|
|
queryset = Dept.objects.all()
|
|
serializer_class = DeptQuerySerializer
|
|
filter_fields = ['name']
|