Commit 3fa4a189 by Tom Christie

Reintroduce save hooks

parent 6bfed6f8
...@@ -20,10 +20,13 @@ class CreateModelMixin(object): ...@@ -20,10 +20,13 @@ class CreateModelMixin(object):
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data) serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
serializer.save() self.create_valid(serializer)
headers = self.get_success_headers(serializer.data) headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def create_valid(self, serializer):
serializer.save()
def get_success_headers(self, data): def get_success_headers(self, data):
try: try:
return {'Location': data[api_settings.URL_FIELD_NAME]} return {'Location': data[api_settings.URL_FIELD_NAME]}
...@@ -64,9 +67,12 @@ class UpdateModelMixin(object): ...@@ -64,9 +67,12 @@ class UpdateModelMixin(object):
instance = self.get_object() instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=partial) serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
serializer.save() self.update_valid(serializer)
return Response(serializer.data) return Response(serializer.data)
def update_valid(self, serializer):
serializer.save()
def partial_update(self, request, *args, **kwargs): def partial_update(self, request, *args, **kwargs):
kwargs['partial'] = True kwargs['partial'] = True
return self.update(request, *args, **kwargs) return self.update(request, *args, **kwargs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment