perf: 优化mlog和handover的查询

This commit is contained in:
caoqianming 2025-05-23 09:54:24 +08:00
parent 62f261fd75
commit 9c1ba20d36
2 changed files with 7 additions and 2 deletions

View File

@ -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

View File

@ -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