Commit b4cd699b by Tom Christie

Tweak media_type -> accepted_media_type. Need to document, but marginally less confusing

parent d9cba639
...@@ -9,7 +9,7 @@ class Response(SimpleTemplateResponse): ...@@ -9,7 +9,7 @@ class Response(SimpleTemplateResponse):
""" """
def __init__(self, data=None, status=None, headers=None, def __init__(self, data=None, status=None, headers=None,
renderer=None, media_type=None): renderer=None, accepted_media_type=None):
""" """
Alters the init arguments slightly. Alters the init arguments slightly.
For example, drop 'template_name', and instead use 'data'. For example, drop 'template_name', and instead use 'data'.
...@@ -21,14 +21,15 @@ class Response(SimpleTemplateResponse): ...@@ -21,14 +21,15 @@ class Response(SimpleTemplateResponse):
self.data = data self.data = data
self.headers = headers and headers[:] or [] self.headers = headers and headers[:] or []
self.renderer = renderer self.renderer = renderer
self.media_type = media_type self.accepted_media_type = accepted_media_type
@property @property
def rendered_content(self): def rendered_content(self):
self['Content-Type'] = self.renderer.media_type self['Content-Type'] = self.renderer.media_type
if self.data is None: if self.data is None:
return self.renderer.render() return self.renderer.render()
return self.renderer.render(self.data, self.media_type) render_media_type = self.accepted_media_type or self.renderer.media_type
return self.renderer.render(self.data, render_media_type)
@property @property
def status_text(self): def status_text(self):
......
...@@ -161,7 +161,7 @@ class APIView(View): ...@@ -161,7 +161,7 @@ class APIView(View):
""" """
return [throttle(self) for throttle in self.throttle_classes] return [throttle(self) for throttle in self.throttle_classes]
def content_negotiation(self, request, force=False): def perform_content_negotiation(self, request, force=False):
""" """
Determine which renderer and media type to use render the response. Determine which renderer and media type to use render the response.
""" """
...@@ -199,7 +199,7 @@ class APIView(View): ...@@ -199,7 +199,7 @@ class APIView(View):
self.format = self.get_format_suffix(**kwargs) self.format = self.get_format_suffix(**kwargs)
self.check_permissions(request) self.check_permissions(request)
self.check_throttles(request) self.check_throttles(request)
self.renderer, self.media_type = self.content_negotiation(request) self.renderer, self.accepted_media_type = self.perform_content_negotiation(request)
def finalize_response(self, request, response, *args, **kwargs): def finalize_response(self, request, response, *args, **kwargs):
""" """
...@@ -207,9 +207,9 @@ class APIView(View): ...@@ -207,9 +207,9 @@ class APIView(View):
""" """
if isinstance(response, Response): if isinstance(response, Response):
if not getattr(self, 'renderer', None): if not getattr(self, 'renderer', None):
self.renderer, self.media_type = self.content_negotiation(request, force=True) self.renderer, self.accepted_media_type = self.perform_content_negotiation(request, force=True)
response.renderer = self.renderer response.renderer = self.renderer
response.media_type = self.media_type response.accepted_media_type = self.accepted_media_type
for key, value in self.headers.items(): for key, value in self.headers.items():
response[key] = value response[key] = value
......
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