diff options
| author | Tom Christie | 2012-02-16 07:11:42 -0800 |
|---|---|---|
| committer | Tom Christie | 2012-02-16 07:11:42 -0800 |
| commit | 87a9072b56cfe4f591c25c6c7992553759305600 (patch) | |
| tree | 53637c6ac381e00b0a16ae3ad7cfa6fcf2274b61 /djangorestframework/mixins.py | |
| parent | 426493a78f3003fdba39053b6af23b93b312a777 (diff) | |
| parent | add5f32e8a9ba530591c23b8123f36468595fd88 (diff) | |
| download | django-rest-framework-87a9072b56cfe4f591c25c6c7992553759305600.tar.bz2 | |
Merge pull request #145 from flashingpumpkin/master
Added a method get_renderers to the ResponseMixin
Diffstat (limited to 'djangorestframework/mixins.py')
| -rw-r--r-- | djangorestframework/mixins.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/djangorestframework/mixins.py b/djangorestframework/mixins.py index 836c3a59..cb0b913a 100644 --- a/djangorestframework/mixins.py +++ b/djangorestframework/mixins.py @@ -182,7 +182,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 @@ -221,6 +221,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): @@ -282,7 +289,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: |
