mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 09:16:10 -06:00
7503 fix return data for bulk operations
This commit is contained in:
parent
b645b6d159
commit
fc9555a7b2
@ -418,14 +418,21 @@ class DeviceViewSet(ConfigContextQuerySetMixin, ConfigTemplateRenderMixin, NetBo
|
|||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
# do validate / create for each item in serial instead of validating all data at once
|
# do validate / create for each item in serial instead of validating all data at once
|
||||||
data_list = request.data if isinstance(request.data, list) else [request.data, ]
|
if is_bulk := isinstance(request.data, list):
|
||||||
|
return_data = []
|
||||||
|
data_list = request.data if is_bulk else [request.data, ]
|
||||||
|
|
||||||
for data in data_list:
|
for data in data_list:
|
||||||
serializer = self.get_serializer(data=data)
|
serializer = self.get_serializer(data=data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
self.perform_create(serializer)
|
self.perform_create(serializer)
|
||||||
headers = self.get_success_headers(serializer.data)
|
headers = self.get_success_headers(serializer.data)
|
||||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
if is_bulk:
|
||||||
|
return_data.append(serializer.data)
|
||||||
|
else:
|
||||||
|
return_data = serializer.data
|
||||||
|
|
||||||
|
return Response(return_data, status=status.HTTP_201_CREATED, headers=headers)
|
||||||
|
|
||||||
@action(detail=True, methods=['post'], url_path='render-config', renderer_classes=[JSONRenderer, TextRenderer])
|
@action(detail=True, methods=['post'], url_path='render-config', renderer_classes=[JSONRenderer, TextRenderer])
|
||||||
def render_config(self, request, pk):
|
def render_config(self, request, pk):
|
||||||
|
Loading…
Reference in New Issue
Block a user