Update mixins.py

Availability to pass force_insert keyword arg to UpdateModelMixin.update()
This commit is contained in:
Eugeniy 2014-11-25 16:49:07 +05:00
parent 650a91ac24
commit bb8402acf3

View File

@ -114,6 +114,7 @@ class UpdateModelMixin(object):
""" """
def update(self, request, *args, **kwargs): def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False) partial = kwargs.pop('partial', False)
force_insert = kwargs.pop('force_insert', False)
self.object = self.get_object_or_none() self.object = self.get_object_or_none()
serializer = self.get_serializer(self.object, data=request.DATA, 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) return Response(err.message_dict, status=status.HTTP_400_BAD_REQUEST)
if self.object is None: 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) self.post_save(self.object, created=True)
return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.data, status=status.HTTP_201_CREATED)