# -*- coding: utf-8 -*- import django_filters from apps.lyworkflow.models import * from rest_framework import serializers from utils.viewset import CustomModelViewSet from utils.serializers import CustomModelSerializer from utils.common import ast_convert from utils.jsonResponse import SuccessResponse,ErrorResponse,DetailResponse class LYWorkflowFilterSet(django_filters.rest_framework.FilterSet): #开始时间 beginAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='gte') # 指定过滤的字段 #结束时间 endAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='lte') name = django_filters.CharFilter(field_name='name',lookup_expr='icontains') class Meta: model = LYWorkflow fields = ['beginAt', 'endAt', 'name'] class LYWorkflowSerializer(CustomModelSerializer): """ LYWorkflow 序列化器 """ class Meta: model = LYWorkflow read_only_fields = ["id"] fields = '__all__' class LYWorkflowViewSet(CustomModelViewSet): """ LYWorkflow 接口 """ queryset = LYWorkflow.objects.filter(is_delete=False).order_by("-create_datetime") serializer_class = LYWorkflowSerializer filterset_class = LYWorkflowFilterSet #重写delete方法,并改为逻辑删除 def destroy(self, request, *args, **kwargs): instance = self.get_object_list() for i in range(len(instance)): instance[i].is_delete = True model = self.get_serializer().Meta.model model.objects.bulk_update(instance,fields=['is_delete']) return DetailResponse(msg="删除成功") def opstatus(self,request,*args, **kwargs): """状态操作""" instance = LYWorkflow.objects.filter(id=kwargs.get('pk')).first() if instance: instance.status =0 if instance.status == 1 else 1 instance.save() return SuccessResponse(data=None, msg="修改成功") else: return ErrorResponse(msg="未获取到数据")