aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/mixins.py
diff options
context:
space:
mode:
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: