diff --git a/apps/wpmw/models.py b/apps/wpmw/models.py index 678f6db9..82bd126b 100644 --- a/apps/wpmw/models.py +++ b/apps/wpmw/models.py @@ -71,6 +71,9 @@ class Wpr(BaseModel): def get_qs_by_wm(cls, wm): return cls.objects.filter(wm=wm, mb=None) + @property + def wprdefect(self): + return WprDefect.objects.filter(wpr=self) class WprDefect(BaseModel): wpr = models.ForeignKey(Wpr, verbose_name="关联产物", on_delete=models.CASCADE) diff --git a/apps/wpmw/serializers.py b/apps/wpmw/serializers.py index 4995168e..3f06ebd2 100644 --- a/apps/wpmw/serializers.py +++ b/apps/wpmw/serializers.py @@ -2,10 +2,18 @@ from apps.wpmw.models import Wpr, WprDefect from apps.utils.serializers import CustomModelSerializer from rest_framework import serializers -class WprSerializer(CustomModelSerializer): +class WprDefectSerializer(CustomModelSerializer): + defect_name = serializers.CharField(source="defect.name", read_only=True) + class Meta: + model = WprDefect + fields = "__all__" + + +class WprSerializer(CustomModelSerializer): material_name = serializers.StringRelatedField( - source='material', read_only=True) + source='material', read_only=True) + wprdefect = WprDefectSerializer(many=True, read_only=True) class Meta: model = Wpr