feat: 优化mlog list查询
This commit is contained in:
parent
1d0861e0e7
commit
c47b66af6c
|
@ -256,6 +256,7 @@ class MlogListSerializer(CustomModelSerializer):
|
|||
source='create_by.name', read_only=True)
|
||||
update_by_name = serializers.CharField(
|
||||
source='update_by.name', read_only=True)
|
||||
# + 0.3s
|
||||
material_in_ = MaterialSimpleSerializer(
|
||||
source='material_in', read_only=True)
|
||||
material_out_ = MaterialSimpleSerializer(
|
||||
|
@ -264,6 +265,7 @@ class MlogListSerializer(CustomModelSerializer):
|
|||
source='material_out', read_only=True)
|
||||
material_in_name = serializers.StringRelatedField(
|
||||
source='material_in', read_only=True)
|
||||
#
|
||||
handle_user_name = serializers.CharField(
|
||||
source='handle_user.name', read_only=True)
|
||||
handle_user_2_name = serializers.CharField(
|
||||
|
@ -275,15 +277,17 @@ class MlogListSerializer(CustomModelSerializer):
|
|||
equipment_2_name = serializers.StringRelatedField(
|
||||
source='equipment_2', read_only=True)
|
||||
shift_name = serializers.CharField(source='shift.name', read_only=True)
|
||||
ticket_ = TicketSimpleSerializer(source='ticket', read_only=True)
|
||||
test_user_name = serializers.CharField(source='test_user.name', read_only=True)
|
||||
ticket_ = TicketSimpleSerializer(source='ticket', read_only=True)
|
||||
submit_user_name = serializers.CharField(source='submit_user.name', read_only=True)
|
||||
|
||||
handle_users_ = UserSimpleSerializer(
|
||||
source='handle_users', many=True, read_only=True)
|
||||
submit_user_name = serializers.CharField(source='submit_user.name', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Mlog
|
||||
fields = '__all__'
|
||||
# exclude = ["equipments","handle_users", "material_outs"]
|
||||
|
||||
|
||||
class MlogbDetailSerializer(CustomModelSerializer):
|
||||
|
|
|
@ -187,13 +187,14 @@ class MlogViewSet(CustomModelViewSet):
|
|||
queryset = Mlog.objects.all()
|
||||
serializer_class = MlogSerializer
|
||||
list_serializer_class = MlogListSerializer
|
||||
select_related_fields = ['create_by', 'update_by', 'mtask', 'mtaskb',
|
||||
'handle_user', 'handle_user_2', 'equipment', 'mgroup__belong_dept',
|
||||
'equipment_2', 'material_in', 'material_out', 'route__routepack', 'submit_user',
|
||||
'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user', 'team',
|
||||
'material_in__process', 'material_out__process']
|
||||
prefetch_related_fields = ['handle_users',
|
||||
'material_outs', 'b_mlog', 'equipments']
|
||||
select_related_fields = ["create_by", "update_by", "handle_user", "equipment", "mgroup", "material_in", "material_out",
|
||||
'material_in__process', 'material_out__process', "mgroup__process"]
|
||||
# select_related_fields = ['create_by', 'update_by', 'mtask', 'mtaskb', 'mgroup',
|
||||
# 'handle_user', 'handle_user_2', 'equipment', 'mgroup__belong_dept',
|
||||
# 'equipment_2', 'material_in', 'material_out', 'route__routepack', 'submit_user',
|
||||
# 'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user', 'team',
|
||||
# 'material_in__process', 'material_out__process', "shift", "route"]
|
||||
prefetch_related_fields = ['handle_users', 'material_outs', 'equipments']
|
||||
filterset_class = MlogFilter
|
||||
search_fields = ['material_in__name',
|
||||
'material_in__number', 'material_in__specification', 'batch', 'material_in__model',
|
||||
|
|
Loading…
Reference in New Issue