From 201007866591da9c20e75d9735ee51343c837ed9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 25 Feb 2025 17:33:41 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96mlog=20list=E9=80=9F?= =?UTF-8?q?=E5=BA=A63?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/views.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/apps/wpm/views.py b/apps/wpm/views.py index 6f2fb5b1..2bcdc35a 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -181,16 +181,18 @@ class MlogViewSet(CustomModelViewSet): 'material_out__name', 'material_out__number', 'material_out__specification', 'material_out__model',] def add_info_for_list(self, data): - data_dict = {item['id']: {**item, "mlogb_full": [], "mlogb": []} for item in data} - mlogb_qs = Mlogb.objects.filter(mlog__id__in=data_dict.keys()).select_related("material_in", "material_out").order_by("create_time") - mlogb_data = MlogbSerializer(instance=mlogb_qs, many=True).data - for item in mlogb_data: - item_dict = convert_ordereddict(item) - if item_dict["mlog"] in data_dict: - data_dict[item_dict["mlog"]]["mlogb_full"].append(item_dict) - if item.get("material_out", None): - data_dict[item_dict["mlog"]]["mlogb"].append(item_dict) - return list(data_dict.values()) + if self.request.query_params.get('with_mlogb', False): + data_dict = {item['id']: {**item, "mlogb_full": [], "mlogb": []} for item in data} + mlogb_qs = Mlogb.objects.filter(mlog__id__in=data_dict.keys()).select_related("material_in", "material_out").order_by("create_time") + mlogb_data = MlogbSerializer(instance=mlogb_qs, many=True).data + for item in mlogb_data: + item_dict = convert_ordereddict(item) + if item_dict["mlog"] in data_dict: + data_dict[item_dict["mlog"]]["mlogb_full"].append(item_dict) + if item.get("material_out", None): + data_dict[item_dict["mlog"]]["mlogb"].append(item_dict) + return list(data_dict.values()) + return data @transaction.atomic def perform_destroy(self, instance):