Дополнение полного ответа @ Linovia с помощью действующего кода.
В ViewSet добавление следующего поможет
class WhateverYourModelIsViewSet(viewsets.ModelViewSet):
def destroy(self, *args, **kwargs):
serializer = self.get_serializer(self.get_object())
super().destroy(*args, **kwargs)
return response.Response(serializer.data, status=status.HTTP_200_OK)
Мало что следует знать:
- Возвращая код 204, вы фактически отбросите данные, вы должны вернуть что-то еще
- Вам нужно извлечь данные из сериализатора до того, как вы вызовете команду destroy
Редактировать:
С тех пор как я впервые опубликовал свой ответ, я обнаружил, что мне нужно делать это довольно часто.Более масштабируемое решение:
class DestroyWithPayloadMixin(object):
def destroy(self, *args, **kwargs):
serializer = self.get_serializer(self.get_object())
super().destroy(*args, **kwargs)
return response.Response(serializer.data, status=status.HTTP_200_OK)
class WhateverYourModelIsViewSet(DestroyWithPayloadMixin, viewsets.ModelViewSet):
# Your implementation
pass