From 90f92b3bfb9b58df5b9b6e584d012fe163c35c4e Mon Sep 17 00:00:00 2001 From: Brandon Konkle Date: Thu, 6 Dec 2012 10:07:40 -0700 Subject: [PATCH 1/2] Allow the data to be overridden by subclasses --- rest_framework/mixins.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 1edcfa5c9..51eb21716 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -14,8 +14,10 @@ class CreateModelMixin(object): Create a model instance. Should be mixed in with any `BaseView`. """ - def create(self, request, *args, **kwargs): - serializer = self.get_serializer(data=request.DATA, files=request.FILES) + def create(self, request, data=None, *args, **kwargs): + if data is None: + data = request.DATA + serializer = self.get_serializer(data=data, files=request.FILES) if serializer.is_valid(): self.pre_save(serializer.object) self.object = serializer.save() From 1093f026a13f7dae249febb19bbf66515bab943e Mon Sep 17 00:00:00 2001 From: Brandon Konkle Date: Thu, 6 Dec 2012 10:17:53 -0700 Subject: [PATCH 2/2] Allow the data to be overridden for updates, also --- rest_framework/mixins.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 51eb21716..27adeabbf 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -83,7 +83,7 @@ class UpdateModelMixin(object): Update a model instance. Should be mixed in with `SingleObjectBaseView`. """ - def update(self, request, *args, **kwargs): + def update(self, request, data=None, *args, **kwargs): try: self.object = self.get_object() created = False @@ -91,7 +91,10 @@ class UpdateModelMixin(object): self.object = None created = True - serializer = self.get_serializer(self.object, data=request.DATA, files=request.FILES) + if data is None: + data = request.DATA + + serializer = self.get_serializer(self.object, data=data, files=request.FILES) if serializer.is_valid(): self.pre_save(serializer.object)