From e77c1ac820a9dc894dcbb782a271c8dd70db1a9b Mon Sep 17 00:00:00 2001 From: shijing Date: Wed, 17 Jun 2026 16:06:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BA=93=E5=AD=98=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E8=AE=B0=E5=BD=95mioitems=E5=88=9B=E5=BB=BA=E6=97=B6?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E5=A4=9A=E9=80=89=E6=89=B9=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/views.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/inm/views.py b/apps/inm/views.py index ebf966e1..b0926bc6 100644 --- a/apps/inm/views.py +++ b/apps/inm/views.py @@ -394,8 +394,16 @@ class MIOItemViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyMode return super().list(request, *args, **kwargs) def perform_create(self, serializer): - serializer.validated_data["mio"] = MIOViewSet.lock_and_check_can_update(serializer.validated_data['mio']) - return super().perform_create(serializer) + if isinstance(serializer.validated_data, list): + mio_cache = {} + for item in serializer.validated_data: + mio = item['mio'] + if mio.id not in mio_cache: + mio_cache[mio.id] = MIOViewSet.lock_and_check_can_update(mio) + item['mio'] = mio_cache[mio.id] + else: + serializer.validated_data["mio"] = MIOViewSet.lock_and_check_can_update(serializer.validated_data['mio']) + return super().perform_create(serializer) def perform_destroy(self, instance): MIOViewSet.lock_and_check_can_update(instance.mio)