django-vue-admin/dvadmin-backend/apps/system/views.py

61 lines
2.5 KiB
Python

from rest_framework.request import Request
from apps.op_drf.viewsets import CustomModelViewSet
from apps.system.models import DictData
from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \
DictDetailsCreateUpdateSerializer
from apps.system.models import DictDetails
from apps.system.filters import DictDetailsFilter, DictDataFilter
from utils.response import SuccessResponse
class DictDataModelViewSet(CustomModelViewSet):
"""
字典管理模型的CRUD视图
"""
queryset = DictData.objects.all()
serializer_class = DictDataSerializer
create_serializer_class = DictDataCreateUpdateSerializer
# update_serializer_class = CreateUpdateRoleSerializer
# list_serializer_class = ListRoleSerializer
# retrieve_serializer_class = DetailRoleSerializer
filter_class = DictDataFilter
# update_extra_permission_classes = (IsManagerPermission,)
# destroy_extra_permission_classes = (IsManagerPermission,)
# create_extra_permission_classes = (IsManagerPermission,)
search_fields = ('name',)
ordering = 'id' # 默认排序
class DictDetailsModelViewSet(CustomModelViewSet):
"""
字典详情 模型的CRUD视图
"""
queryset = DictDetails.objects.all()
serializer_class = DictDetailsSerializer
create_serializer_class = DictDetailsCreateUpdateSerializer
# update_serializer_class = CreateUpdateRoleSerializer
# list_serializer_class = ListRoleSerializer
# retrieve_serializer_class = DetailRoleSerializer
filter_class = DictDetailsFilter
# update_extra_permission_classes = (IsManagerPermission,)
# destroy_extra_permission_classes = (IsManagerPermission,)
# create_extra_permission_classes = (IsManagerPermission,)
search_fields = ('name',)
ordering = 'sort' # 默认排序
class DictDetailsListModelViewSet(CustomModelViewSet):
"""
根据字典类型查询字典数据信息 模型的CRUD视图
"""
queryset = DictDetails.objects.filter(status=True)
serializer_class = DictDetailsSerializer
filter_class = DictDetailsFilter
search_fields = ('name',)
ordering = 'create_datetime' # 默认排序
def list(self, request: Request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
if hasattr(self, 'handle_logging'):
self.handle_logging(request, *args, **kwargs)
serializer = self.get_serializer(queryset, many=True)
return SuccessResponse(serializer.data)