diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index 3a674e7..d426947 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -614,7 +614,7 @@ class OperationEquipViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMixin, instance.delete() return Response() -class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): +class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, UpdateModelMixin, GenericViewSet): """ 操作使用的自定义表格 """ @@ -625,6 +625,10 @@ class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): ordering_fields = ['id'] ordering = ['-id'] + def get_serializer_class(self): + if self.action == 'update': + return OperationRecordSubmitSerializer + return super().get_serializer_class() @transaction.atomic() def destroy(self, request, *args, **kwargs): instance = self.get_object() @@ -643,12 +647,14 @@ class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet): # 后续加入系统带入数据 return Response(data) - @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=OperationRecordSubmitSerializer) - def submit(self, request, pk=None): - serializer = OperationRecordSubmitSerializer(data=request.data, context={'request':self.request}) + + def update(self, request, *args, **kwargs): + serializer = OperationRecordSubmitSerializer(data=request.data) serializer.is_valid(raise_exception=True) vdata = serializer.validated_data opr = self.get_object() + if opr.operation.is_submited: + raise exceptions.APIException('操作已提交不可修改') wrds = [] for m in vdata['record_data']: # 保存记录详情 form_field = m['form_field']