Basic support for format suffixes

This commit is contained in:
Tom Christie 2012-09-07 11:12:24 +01:00
parent 071e7d72cd
commit 1608583eaa
2 changed files with 9 additions and 2 deletions

View File

@ -41,7 +41,8 @@ class Response(SimpleTemplateResponse):
_ACCEPT_QUERY_PARAM = api_settings.URL_ACCEPT_OVERRIDE
_IGNORE_IE_ACCEPT_HEADER = True
def __init__(self, content=None, status=None, headers=None, view=None, request=None, renderers=None):
def __init__(self, content=None, status=None, headers=None, view=None,
request=None, renderers=None, format=None):
# First argument taken by `SimpleTemplateResponse.__init__` is template_name,
# which we don't need
super(Response, self).__init__(None, status=status)
@ -52,6 +53,7 @@ class Response(SimpleTemplateResponse):
self.view = view
self.request = request
self.renderers = renderers
self.format = format
def get_renderers(self):
"""
@ -62,6 +64,9 @@ class Response(SimpleTemplateResponse):
else:
renderer_classes = self.renderers
if self.format:
return [cls(self.view) for cls in renderer_classes
if cls.format == self.format]
return [cls(self.view) for cls in renderer_classes]
@property

View File

@ -203,7 +203,7 @@ class APIView(_View):
"""
return Request(request, parsers=self.parsers, authentication=self.authentication)
def finalize_response(self, request, response, *args, **kargs):
def finalize_response(self, request, response, *args, **kwargs):
"""
Returns the final response object.
"""
@ -211,6 +211,8 @@ class APIView(_View):
response.view = self
response.request = request
response.renderers = self.renderers
if api_settings.FORMAT_SUFFIX_KWARG:
response.format = kwargs.get(api_settings.FORMAT_SUFFIX_KWARG, None)
for key, value in self.headers.items():
response[key] = value