M: Allow partial attribute updates

This commit is contained in:
Ivan 2025-04-22 14:23:26 +03:00
parent 58040f593f
commit 3d81a7dc28

View File

@ -169,8 +169,11 @@ class OssViewSet(viewsets.GenericViewSet, generics.ListAPIView, generics.Retriev
with transaction.atomic(): with transaction.atomic():
if 'layout' in serializer.validated_data: if 'layout' in serializer.validated_data:
oss.update_layout(serializer.validated_data['layout']) oss.update_layout(serializer.validated_data['layout'])
if 'title' in serializer.validated_data['item_data']:
block.title = serializer.validated_data['item_data']['title'] block.title = serializer.validated_data['item_data']['title']
if 'description' in serializer.validated_data['item_data']:
block.description = serializer.validated_data['item_data']['description'] block.description = serializer.validated_data['item_data']['description']
if 'parent' in serializer.validated_data['item_data']:
block.parent = serializer.validated_data['item_data']['parent'] block.parent = serializer.validated_data['item_data']['parent']
block.save(update_fields=['title', 'description', 'parent']) block.save(update_fields=['title', 'description', 'parent'])
return Response( return Response(
@ -297,8 +300,11 @@ class OssViewSet(viewsets.GenericViewSet, generics.ListAPIView, generics.Retriev
with transaction.atomic(): with transaction.atomic():
if 'layout' in serializer.validated_data: if 'layout' in serializer.validated_data:
oss.update_layout(serializer.validated_data['layout']) oss.update_layout(serializer.validated_data['layout'])
if 'alias' in serializer.validated_data['item_data']:
operation.alias = serializer.validated_data['item_data']['alias'] operation.alias = serializer.validated_data['item_data']['alias']
if 'title' in serializer.validated_data['item_data']:
operation.title = serializer.validated_data['item_data']['title'] operation.title = serializer.validated_data['item_data']['title']
if 'description' in serializer.validated_data['item_data']:
operation.description = serializer.validated_data['item_data']['description'] operation.description = serializer.validated_data['item_data']['description']
operation.save(update_fields=['alias', 'title', 'description']) operation.save(update_fields=['alias', 'title', 'description'])