Fixed the created/updated status code for an update.

This commit is contained in:
Xavier Ordoquy 2013-05-22 09:22:38 +02:00
parent 249588778c
commit 5237106214

View File

@ -131,14 +131,14 @@ class UpdateModelMixin(object):
# or simply return None # or simply return None
self.check_permissions(clone_request(self.request, 'POST')) self.check_permissions(clone_request(self.request, 'POST'))
def valid_update(self, serializer): def valid_update(self, serializer, created=False):
if self.object is None: if created:
success_status_code = status.HTTP_201_CREATED success_status_code = status.HTTP_201_CREATED
else: else:
success_status_code = status.HTTP_200_OK success_status_code = status.HTTP_200_OK
return Response(serializer.data, status=success_status_code) return Response(serializer.data, status=success_status_code)
def invalid_update(self, serializer): def invalid_update(self, serializer, created=False):
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def update(self, request, *args, **kwargs): def update(self, request, *args, **kwargs):
@ -159,9 +159,9 @@ class UpdateModelMixin(object):
self.pre_save(serializer.object) self.pre_save(serializer.object)
self.object = serializer.save(**save_kwargs) self.object = serializer.save(**save_kwargs)
self.post_save(self.object, created=created) self.post_save(self.object, created=created)
return self.valid_update(serializer) return self.valid_update(serializer, created)
return self.invalid_update(serializer) return self.invalid_update(serializer, created)
def partial_update(self, request, *args, **kwargs): def partial_update(self, request, *args, **kwargs):
kwargs['partial'] = True kwargs['partial'] = True