aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/mixins.py
diff options
context:
space:
mode:
authorAlen Mujezinovic2012-01-27 12:56:05 +0000
committerAlen Mujezinovic2012-01-27 12:56:05 +0000
commitdd680d7a0ae997f2e562db383f23b56624e7ea98 (patch)
tree951928fd77e52a9166887b9fd98c36c6cfb58992 /djangorestframework/mixins.py
parentc1fe5da85f936453a592fa683928672bb1911217 (diff)
downloaddjango-rest-framework-dd680d7a0ae997f2e562db383f23b56624e7ea98.tar.bz2
Added get_renderers method to ResponseMixin
Diffstat (limited to 'djangorestframework/mixins.py')
-rw-r--r--djangorestframework/mixins.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/djangorestframework/mixins.py b/djangorestframework/mixins.py
index 7f0870f8..70492d84 100644
--- a/djangorestframework/mixins.py
+++ b/djangorestframework/mixins.py
@@ -183,7 +183,7 @@ class RequestMixin(object):
return parser.parse(stream)
raise ErrorResponse(status.HTTP_415_UNSUPPORTED_MEDIA_TYPE,
- {'error': 'Unsupported media type in request \'%s\'.' %
+ {'error': 'Unsupported media type in request \'%s\'.' %
content_type})
@property
@@ -222,6 +222,13 @@ class ResponseMixin(object):
Should be a tuple/list of classes as described in the :mod:`renderers` module.
"""
+ def get_renderers(self):
+ """
+ Return an iterable of available renderers. Override if you want to change
+ this list at runtime, say depending on what settings you have enabled.
+ """
+ return self.renderers
+
# TODO: wrap this behavior around dispatch(), ensuring it works
# out of the box with existing Django classes that use render_to_response.
def render(self, response):
@@ -283,7 +290,7 @@ class ResponseMixin(object):
# attempting more specific media types first
# NB. The inner loop here isn't as bad as it first looks :)
# Worst case is we're looping over len(accept_list) * len(self.renderers)
- renderers = [renderer_cls(self) for renderer_cls in self.renderers]
+ renderers = [renderer_cls(self) for renderer_cls in self.get_renderers()]
for accepted_media_type_lst in order_by_precedence(accept_list):
for renderer in renderers: