diff options
| author | Tom Christie | 2013-03-13 20:40:39 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-03-13 20:40:39 +0000 |
| commit | acc8c1faa4f85dda00723d755e56bb3c980dbc75 (patch) | |
| tree | 963418ba768dadd1ff2b5912fe819f05c2288ddb /rest_framework/mixins.py | |
| parent | a53596ce28359e24313a5fb9bd8f3564eb12678e (diff) | |
| download | django-rest-framework-acc8c1faa4f85dda00723d755e56bb3c980dbc75.tar.bz2 | |
force_insert, force_update arguments. Closes #484.
Confirmed by `assertNumQueries(…)` in tests.
Diffstat (limited to 'rest_framework/mixins.py')
| -rw-r--r-- | rest_framework/mixins.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 8e401204..7d9a6e65 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -44,7 +44,7 @@ class CreateModelMixin(object): if serializer.is_valid(): self.pre_save(serializer.object) - self.object = serializer.save() + self.object = serializer.save(force_insert=True) self.post_save(self.object, created=True) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, @@ -119,9 +119,11 @@ class UpdateModelMixin(object): # we have relevant permissions, as if this was a POST request. self.check_permissions(clone_request(request, 'POST')) created = True + save_kwargs = {'force_insert': True} success_status_code = status.HTTP_201_CREATED else: created = False + save_kwargs = {'force_update': True} success_status_code = status.HTTP_200_OK serializer = self.get_serializer(self.object, data=request.DATA, @@ -129,7 +131,7 @@ class UpdateModelMixin(object): if serializer.is_valid(): self.pre_save(serializer.object) - self.object = serializer.save() + self.object = serializer.save(**save_kwargs) self.post_save(self.object, created=created) return Response(serializer.data, status=success_status_code) |
