В основном это происходит здесь , внутри UpdateModelMixin
.Код:
class UpdateModelMixin(object):
...
def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=partial) # <-- Partial Update
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
if getattr(instance, '_prefetched_objects_cache', None):
# If 'prefetch_related' has been applied to a queryset, we need to
# forcibly invalidate the prefetch cache on the instance.
instance._prefetched_objects_cache = {}
return Response(serializer.data)
def perform_update(self, serializer):
serializer.save() # <-- here
, а UpdateModelMixin
позднее разделяется на ModelViewSet
.
В основном используется функция обновления Частичное Serializer.