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