Попробуйте использовать следующую функцию PUT.PUT будет более подходящим в соответствии со стандартами HTTP-метода REST.
def put(self, request, validated_data, *args, **kwargs):
try:
instance = self.queryset.get(pk=kwargs['pk'])
serializer = InstanceSerializer()
updated_instance = serializer.update(instance, request.data)
return Response(InstanceSerializer(updated_instance).data)
except Instance.DoesNotExist:
return Response(
data={
'message': 'instance does not exist'
},
status=status.HTTP_404_NOT_FOUND
)
Сначала получите экземпляр в соответствии с его pk.Добавьте сериализатор для последующей сериализации данных.Затем получите данные, которые вы хотите обновить, с помощью сериализатора и, наконец, добавьте их в ответ (если вам нужны обновленные данные).