From 0b62f401f0606c79436a1f31993e4eba8a9911cf Mon Sep 17 00:00:00 2001 From: flyhy Date: Sat, 19 Aug 2023 21:19:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E7=BB=84=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E5=90=8C=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E5=85=83=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/system_config.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backend/dvadmin/system/views/system_config.py b/backend/dvadmin/system/views/system_config.py index 85cb81f..2315b06 100644 --- a/backend/dvadmin/system/views/system_config.py +++ b/backend/dvadmin/system/views/system_config.py @@ -170,14 +170,21 @@ class SystemConfigViewSet(CustomModelViewSet): def save_content(self, request): body = request.data - data_mapping = {item['id']: item for item in body} + data_mapping = {item['id']: item for item in body if item['id'] is not None} + create_list = list() for obj_id, data in data_mapping.items(): instance_obj = SystemConfig.objects.filter(id=obj_id).first() if instance_obj is None: # return SystemConfig.objects.create(**data) - serializer = SystemConfigCreateSerializer(data=data) + # serializer = SystemConfigCreateSerializer(data=data) + create_list.append(data) else: serializer = SystemConfigCreateSerializer(instance_obj, data=data) + if serializer.is_valid(raise_exception=True): + serializer.save() + create_list += [item for item in body if item['id'] is None] + for data in create_list: + serializer = SystemConfigCreateSerializer(data=data) if serializer.is_valid(raise_exception=True): serializer.save() websocket_push("dvadmin", message={"sender": 'system', "contentType": 'SYSTEM',