diff --git a/apps/wpmw/serializers.py b/apps/wpmw/serializers.py index 6a049e1e..4995168e 100644 --- a/apps/wpmw/serializers.py +++ b/apps/wpmw/serializers.py @@ -1,7 +1,12 @@ from apps.wpmw.models import Wpr, WprDefect from apps.utils.serializers import CustomModelSerializer +from rest_framework import serializers class WprSerializer(CustomModelSerializer): + + material_name = serializers.StringRelatedField( + source='material', read_only=True) + class Meta: model = Wpr fields = '__all__' \ No newline at end of file diff --git a/apps/wpmw/views.py b/apps/wpmw/views.py index 7659c3c3..968ea91d 100644 --- a/apps/wpmw/views.py +++ b/apps/wpmw/views.py @@ -12,7 +12,11 @@ class WprViewSet(CustomListModelMixin, CustomGenericViewSet): 动态产品 """ perms_map = {"get": "*"} + select_related_fields = ["wm", "mb", "material"] + prefetch_related_fields = ["defects"] queryset = Wpr.objects.all() serializer_class = WprSerializer - ordering = ["number"] - ordering_fields = ["number", "create_time", "update_time"] \ No newline at end of file + filter_fields = ["mb", "wm", "state", "material", "defects"] + ordering = ["-create_time"] + ordering_fields = ["number", "create_time", "update_time"] + search_fields = ["number", "material__name", "material__model", "material__specification"] \ No newline at end of file