diff --git a/apps/wpmw/filters.py b/apps/wpmw/filters.py index 607fc49c..fae8b731 100644 --- a/apps/wpmw/filters.py +++ b/apps/wpmw/filters.py @@ -38,9 +38,11 @@ class WprFilter(filters.FilterSet): elif value == "done": matoutIds = process.get_canout_mat_ids() qs = queryset.filter(material__id__in=matoutIds).exclude(state=WMaterial.WM_REPAIR)|queryset.filter(state=WMaterial.WM_REPAIRED, wm__mgroup__id=mgroupId) + return qs elif value == "canfix": matoutIds = process.get_canout_mat_ids() qs = queryset.filter(state=WMaterial.WM_REPAIR, wm__mgroup__id=mgroupId)| queryset.filter(material__id__in=matoutIds, state=WMaterial.WM_NOTOK) + return qs else: raise ParseError("请提供工段查询条件") diff --git a/apps/wpmw/serializers.py b/apps/wpmw/serializers.py index 421d79d2..860dbbba 100644 --- a/apps/wpmw/serializers.py +++ b/apps/wpmw/serializers.py @@ -17,6 +17,8 @@ class WprSerializer(CustomModelSerializer): mb_batch = serializers.CharField(source="mb.batch", read_only=True) material_name = serializers.StringRelatedField( source='material', read_only=True) + # material_start_name = serializers.StringRelatedField(source='material_start', read_only=True) + wm_material_ofrom_name = serializers.StringRelatedField(source="wm.material_ofrom", read_only=True) wprdefect = WprDefectSerializer(many=True, read_only=True) class Meta: diff --git a/apps/wpmw/views.py b/apps/wpmw/views.py index ea8ad8e2..149d1759 100644 --- a/apps/wpmw/views.py +++ b/apps/wpmw/views.py @@ -18,7 +18,7 @@ class WprViewSet(CustomListModelMixin, RetrieveModelMixin, ComplexQueryMixin, Cu 动态产品 """ perms_map = {"get": "*"} - select_related_fields = ["wm", "mb", "material"] + select_related_fields = ["wm", "mb", "material", "wm__material_ofrom"] prefetch_related_fields = ["defects"] queryset = Wpr.objects.all() serializer_class = WprSerializer