perf: 优化mlog和handover的查询
This commit is contained in:
parent
62f261fd75
commit
9c1ba20d36
|
@ -111,7 +111,9 @@ class MlogFilter(filters.FilterSet):
|
||||||
}
|
}
|
||||||
|
|
||||||
def filter_cbatch(self, queryset, name, value):
|
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):
|
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)
|
return queryset.filter(send_dept__id=value)|queryset.filter(recive_dept__id=value)
|
||||||
|
|
||||||
def filter_cbatch(self, queryset, name, 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:
|
class Meta:
|
||||||
model = Handover
|
model = Handover
|
||||||
|
|
|
@ -384,6 +384,7 @@ class HandoverViewSet(CustomModelViewSet):
|
||||||
filterset_class = HandoverFilter
|
filterset_class = HandoverFilter
|
||||||
search_fields = ['id', 'material__name',
|
search_fields = ['id', 'material__name',
|
||||||
'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch"]
|
'material__number', 'material__specification', 'batch', 'material__model', 'b_handover__batch', "new_batch"]
|
||||||
|
prefetch_related_fields = ["b_handover"]
|
||||||
|
|
||||||
def perform_destroy(self, instance):
|
def perform_destroy(self, instance):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
|
|
Loading…
Reference in New Issue