diff options
| author | Tom Christie | 2012-11-14 10:42:08 -0800 |
|---|---|---|
| committer | Tom Christie | 2012-11-14 10:42:08 -0800 |
| commit | 0cfb27b40e14274b990f943f79008f2cd6978e26 (patch) | |
| tree | 30a9a64d105c8c60538bcccf081531af651382e5 /rest_framework/mixins.py | |
| parent | a83eb748c1515f9b4c363c9c7de1782d9da4dfe9 (diff) | |
| parent | d9c62c20a7a025d8e94fb881641731b340088f98 (diff) | |
| download | django-rest-framework-0cfb27b40e14274b990f943f79008f2cd6978e26.tar.bz2 | |
Merge pull request #407 from ludwigkraatz/location_header
Location header when Creating a Resource with HyperlinkedIdentityField
Diffstat (limited to 'rest_framework/mixins.py')
| -rw-r--r-- | rest_framework/mixins.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index c3625a88..cd104a7c 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -19,9 +19,16 @@ class CreateModelMixin(object): if serializer.is_valid(): self.pre_save(serializer.object) self.object = serializer.save() - return Response(serializer.data, status=status.HTTP_201_CREATED) + headers = self.get_success_headers(serializer.data) + return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - + + def get_success_headers(self, data): + if 'url' in data: + return {'Location': data.get('url')} + else: + return {} + def pre_save(self, obj): pass |
