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) | 
