From 91dacba6682b2ac129fe7f8fff5069ad3001645d Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 23 Dec 2024 15:29:10 +0800 Subject: [PATCH] fix: QctDetailSerializer bug --- apps/qm/models.py | 12 ++++++++++++ apps/qm/serializers.py | 7 ++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/qm/models.py b/apps/qm/models.py index 41d05290..748139c4 100644 --- a/apps/qm/models.py +++ b/apps/qm/models.py @@ -145,6 +145,18 @@ class Qct(CommonAModel): defects = models.ManyToManyField(Defect, verbose_name="缺陷项", blank=True, through='qm.qctdefect') materials = models.ManyToManyField(Material, verbose_name="物料", blank=True, through='qm.qctmat') + @property + def qct_testitems(self): + return QctTestItem.objects.filter(qct=self) + + @property + def qct_defects(self): + return QctDefect.objects.filter(qct=self) + + @property + def qct_mats(self): + return QctMat.objects.filter(qct=self) + class QctTestItem(BaseModel): qct = models.ForeignKey(Qct, verbose_name="质检模板", on_delete=models.CASCADE, related_name="qcttestitem") testitem = models.ForeignKey(TestItem, verbose_name="检测项", on_delete=models.CASCADE, null=True, blank=True) diff --git a/apps/qm/serializers.py b/apps/qm/serializers.py index 2eb6ccee..80084fee 100644 --- a/apps/qm/serializers.py +++ b/apps/qm/serializers.py @@ -38,6 +38,7 @@ class QctSerializer(CustomModelSerializer): class QctTestItemSerializer(CustomModelSerializer): testitem_name = serializers.CharField(source='testitem.name', read_only=True) + testitem_description = serializers.CharField(source='testitem.description', read_only=True) class Meta: model = QctTestItem fields = '__all__' @@ -55,9 +56,9 @@ class QctMatSerializer(CustomModelSerializer): fields = '__all__' class QctDetailSerializer(CustomModelSerializer): - testitems_ = QctTestItemSerializer(source="testitems", many=True, read_only=True) - defects_ = QctDefectSerializer(source="defects", many=True, read_only=True) - defects_ = DefectSerializer(source="defects", many=True, read_only=True) + qct_testitems = QctTestItemSerializer(many=True, read_only=True) + qct_defects = QctDefectSerializer(many=True, read_only=True) + qct_mats = QctMatSerializer(many=True, read_only=True) class Meta: model = Qct fields = '__all__'