修复数组不能同时增加多个元素

pull/103/head
flyhy 2023-08-19 21:19:34 +08:00
parent 227e1393a4
commit 0b62f401f0
1 changed files with 9 additions and 2 deletions

View File

@ -170,14 +170,21 @@ class SystemConfigViewSet(CustomModelViewSet):
def save_content(self, request): def save_content(self, request):
body = request.data 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(): for obj_id, data in data_mapping.items():
instance_obj = SystemConfig.objects.filter(id=obj_id).first() instance_obj = SystemConfig.objects.filter(id=obj_id).first()
if instance_obj is None: if instance_obj is None:
# return SystemConfig.objects.create(**data) # return SystemConfig.objects.create(**data)
serializer = SystemConfigCreateSerializer(data=data) # serializer = SystemConfigCreateSerializer(data=data)
create_list.append(data)
else: else:
serializer = SystemConfigCreateSerializer(instance_obj, data=data) 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): if serializer.is_valid(raise_exception=True):
serializer.save() serializer.save()
websocket_push("dvadmin", message={"sender": 'system', "contentType": 'SYSTEM', websocket_push("dvadmin", message={"sender": 'system', "contentType": 'SYSTEM',