aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/generics.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/generics.py')
-rw-r--r--rest_framework/generics.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/rest_framework/generics.py b/rest_framework/generics.py
index dd8dfcf8..14e4430e 100644
--- a/rest_framework/generics.py
+++ b/rest_framework/generics.py
@@ -47,14 +47,14 @@ class GenericAPIView(views.APIView):
return serializer_class
- def get_serializer(self, instance=None, data=None, files=None):
+ def get_serializer(self, instance=None, data=None, files=None, partial=False):
"""
Return the serializer instance that should be used for validating and
deserializing input, and for serializing output.
"""
serializer_class = self.get_serializer_class()
context = self.get_serializer_context()
- return serializer_class(instance, data=data, files=files, context=context)
+ return serializer_class(instance, data=data, files=files, partial=partial, context=context)
class MultipleObjectAPIView(MultipleObjectMixin, GenericAPIView):
@@ -169,7 +169,10 @@ class UpdateAPIView(mixins.UpdateModelMixin,
Concrete view for updating a model instance.
"""
def put(self, request, *args, **kwargs):
- return self.update(request, *args, **kwargs)
+ return self.update(request, partial=False, *args, **kwargs)
+
+ def patch(self, request, *args, **kwargs):
+ return self.update(request, partial=True, *args, **kwargs)
class ListCreateAPIView(mixins.ListModelMixin,
@@ -209,7 +212,10 @@ class RetrieveUpdateDestroyAPIView(mixins.RetrieveModelMixin,
return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
- return self.update(request, *args, **kwargs)
+ return self.update(request, partial=False, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
+
+ def patch(self, request, *args, **kwargs):
+ return self.update(request, partial=True, *args, **kwargs)