From 396fcdd7cc05078dbb822d89ced6f57386202b60 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 8 Jan 2025 16:34:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20mlogbw=E5=A2=9E=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E7=BB=9F=E8=AE=A12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/serializers.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index 71be5ffb..74664ef1 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -18,7 +18,7 @@ from django.db import transaction from django.utils import timezone from django.core.cache import cache from django.utils.timezone import localdate -from apps.qm.models import NotOkOption +from apps.qm.models import NotOkOption, Ftest from apps.wf.serializers import TicketSimpleSerializer from apps.wpmw.models import Wpr from apps.qm.serializers import FtestProcessSerializer @@ -588,9 +588,26 @@ class MlogbwCreateUpdateSerializer(CustomModelSerializer): raise ValidationError('请选择相应产品') return attrs + def save_ftest(self, mlogbw, ftest_data): + if "id" not in ftest_data: + ftest = FtestProcessSerializer(data=ftest_data).save() + mlogbw.ftest = ftest + mlogbw.save() + else: + FtestProcessSerializer(instance=Ftest.objects.get(id=ftest_data["id"]), data=ftest_data).save() + return mlogbw + + @transaction.atomic + def create(self, validated_data): + ftest_data = validated_data.pop("ftest", None) + mlogbw = super().create(validated_data) + return self.save_ftest(mlogbw, ftest_data) + def update(self, instance, validated_data): validated_data.pop("mlogb") - super().update(instance, validated_data) + ftest_data = validated_data.pop("ftest", None) + mlogbw = super().update(instance, validated_data) + return self.save_ftest(mlogbw, ftest_data) class MlogbOutUpdateSerializer(CustomModelSerializer): class Meta: