aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/views.py
diff options
context:
space:
mode:
authorTom Christie2012-10-10 12:15:18 +0100
committerTom Christie2012-10-10 12:15:18 +0100
commit648d2be29b0738999742f4d844caab7b7652d1ad (patch)
treeaa4b8a630231f06477e2356abcfee80d54d2c8d8 /rest_framework/views.py
parentccd2b0117d9c26199b1862a302b1eb06dd2f07b2 (diff)
downloaddjango-rest-framework-648d2be29b0738999742f4d844caab7b7652d1ad.tar.bz2
Make sure JSON output in Browseable API is nicely indented
Diffstat (limited to 'rest_framework/views.py')
-rw-r--r--rest_framework/views.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/rest_framework/views.py b/rest_framework/views.py
index 058a6cd3..b3f36085 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -86,6 +86,7 @@ class APIView(View):
@property
def default_response_headers(self):
+ # TODO: deprecate?
# TODO: Only vary by accept if multiple renderers
return {
'Allow': ', '.join(self.allowed_methods),
@@ -158,6 +159,20 @@ class APIView(View):
"""
raise exceptions.Throttled(wait)
+ def get_renderer_context(self):
+ """
+ Returns a dict that is passed through to the Renderer.render(),
+ as the `renderer_context` keyword argument.
+ """
+ # Note: Additionally 'response' will also be set on the context,
+ # by the Response object.
+ return {
+ 'view': self,
+ 'request': self.request,
+ 'args': self.args,
+ 'kwargs': self.kwargs
+ }
+
# API policy instantiation methods
def get_format_suffix(self, **kwargs):
@@ -171,7 +186,7 @@ class APIView(View):
"""
Instantiates and returns the list of renderers that this view can use.
"""
- return [renderer(self) for renderer in self.renderer_classes]
+ return [renderer() for renderer in self.renderer_classes]
def get_parsers(self):
"""
@@ -269,6 +284,7 @@ class APIView(View):
response.accepted_renderer = request.accepted_renderer
response.accepted_media_type = request.accepted_media_type
+ response.renderer_context = self.get_renderer_context()
for key, value in self.headers.items():
response[key] = value
@@ -306,7 +322,7 @@ class APIView(View):
self.request = request
self.args = args
self.kwargs = kwargs
- self.headers = self.default_response_headers
+ self.headers = self.default_response_headers # deprecate?
try:
self.initial(request, *args, **kwargs)