diff --git a/apps/wpm/filters.py b/apps/wpm/filters.py index d0d2fb6a..32e3f8a7 100644 --- a/apps/wpm/filters.py +++ b/apps/wpm/filters.py @@ -111,7 +111,9 @@ class MlogFilter(filters.FilterSet): } def filter_cbatch(self, queryset, name, value): - return queryset.filter(Q(b_mlog__batch=value) | Q(batch=value)).distinct() + qs1 = queryset.filter(batch=value) + qs2 = queryset.filter(b_mlog__batch=value) + return qs1.union(qs2) class HandoverFilter(filters.FilterSet): @@ -126,7 +128,9 @@ class HandoverFilter(filters.FilterSet): return queryset.filter(send_dept__id=value)|queryset.filter(recive_dept__id=value) def filter_cbatch(self, queryset, name, value): - return queryset.filter(Q(b_handover__batch=value) | Q(batch=value)).distinct() + qs1 = queryset.filter(Q(batch=value)|Q(new_batch=value)) + qs2 = queryset.filter(Q(b_handover__batch=value)) + return qs1.union(qs2) class Meta: model = Handover diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 680d3d09..f8aa07d2 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -384,6 +384,7 @@ class HandoverViewSet(CustomModelViewSet): filterset_class = HandoverFilter search_fields = ['id', 'material__name', 'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch"] + prefetch_related_fields = ["b_handover"] def perform_destroy(self, instance): user = self.request.user