From bb8402acf3f2a967655d522d3894d2063054de4b Mon Sep 17 00:00:00 2001 From: Eugeniy Date: Tue, 25 Nov 2014 16:49:07 +0500 Subject: [PATCH 1/2] Update mixins.py Availability to pass force_insert keyword arg to UpdateModelMixin.update() --- rest_framework/mixins.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 2cc87eef1..3aaa33a66 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -114,6 +114,7 @@ class UpdateModelMixin(object): """ def update(self, request, *args, **kwargs): partial = kwargs.pop('partial', False) + force_insert = kwargs.pop('force_insert', False) self.object = self.get_object_or_none() serializer = self.get_serializer(self.object, data=request.DATA, @@ -130,7 +131,7 @@ class UpdateModelMixin(object): return Response(err.message_dict, status=status.HTTP_400_BAD_REQUEST) if self.object is None: - self.object = serializer.save(force_insert=True) + self.object = serializer.save(force_insert=force_insert) self.post_save(self.object, created=True) return Response(serializer.data, status=status.HTTP_201_CREATED) From 5aaf9df96c4287caeaae6ddd83786c1be0c8496d Mon Sep 17 00:00:00 2001 From: Eugeniy Date: Tue, 25 Nov 2014 17:15:00 +0500 Subject: [PATCH 2/2] Set force_insert default to True for backward compatibility --- rest_framework/mixins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 3aaa33a66..d49339c38 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -114,7 +114,7 @@ class UpdateModelMixin(object): """ def update(self, request, *args, **kwargs): partial = kwargs.pop('partial', False) - force_insert = kwargs.pop('force_insert', False) + force_insert = kwargs.pop('force_insert', True) self.object = self.get_object_or_none() serializer = self.get_serializer(self.object, data=request.DATA,