From 229ab9b34a9b9ec6a7290cac7356091e28b28193 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 8 Nov 2021 11:25:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9qm=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/qm/serializers.py | 6 ------ hb_server/apps/qm/views.py | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/hb_server/apps/qm/serializers.py b/hb_server/apps/qm/serializers.py index 02de10e..2ff328b 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -50,12 +50,6 @@ class TestRecordCreateSerializer(serializers.ModelSerializer): class Meta: model = TestRecord fields = ['form', 'record_data', 'is_testok', 'fifo_item'] - - def create(self, validated_data): - validated_data.pop('record_data') - if 'is_testok' not in validated_data: - raise serializers.ValidationError('未填写检测结论') - return super().create(validated_data) class TestRecordListSerializer(serializers.ModelSerializer): class Meta: diff --git a/hb_server/apps/qm/views.py b/hb_server/apps/qm/views.py index 6f2e725..0f29e9b 100644 --- a/hb_server/apps/qm/views.py +++ b/hb_server/apps/qm/views.py @@ -3,6 +3,9 @@ from apps.qm.models import Standard, TestItem, TestRecord, TestRecordItem from django.shortcuts import render from rest_framework.viewsets import ModelViewSet from apps.system.mixins import CreateUpdateModelAMixin +from rest_framework.exceptions import APIException +from rest_framework.response import Response +from rest_framework import status # Create your views here. class StandardViewSet(CreateUpdateModelAMixin, ModelViewSet): """ @@ -56,10 +59,17 @@ class TestRecordViewSet(ModelViewSet): return TestRecordDetailSerializer return super().get_serializer_class() - def perform_create(self, serializer): + def create(self, request, *args, **kwargs): + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + vdata = serializer.validated_data + record_data = vdata.pop('record_data') + if 'is_testok' not in vdata: + raise APIException('未填写检测结论') + obj = serializer.save(create_by = self.request.user) tris = [] - for m in self.request.data['record_data']: # 保存记录详情 + for m in record_data: # 保存记录详情 form_field = m['form_field'] m['field_name'] = form_field.field_name m['field_key'] = form_field.field_key @@ -76,4 +86,6 @@ class TestRecordViewSet(ModelViewSet): if obj.fifo_item: obj.fifo_item.is_testok = True if obj.is_testok else False obj.fifo_item.is_tested = True - obj.fifo_item.save() \ No newline at end of file + obj.fifo_item.save() + + return Response(status=status.HTTP_201_CREATED) \ No newline at end of file