diff options
| author | Tom Christie | 2013-09-26 16:09:08 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-09-26 16:09:08 +0100 |
| commit | 75d6446c8799763dccde0f5f03fbcae39c18dc7f (patch) | |
| tree | 0a2e8f1b1d6d74bfe54cb3b14892d239c690515f /rest_framework/renderers.py | |
| parent | e8c6cd5622f62fcf2d4cf2b28b504fe5ff5228f9 (diff) | |
| download | django-rest-framework-75d6446c8799763dccde0f5f03fbcae39c18dc7f.tar.bz2 | |
Allow .template_name attribute specified on view. Closes #1000
Diffstat (limited to 'rest_framework/renderers.py')
| -rw-r--r-- | rest_framework/renderers.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 2ce51e97..a27160d4 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -272,7 +272,9 @@ class TemplateHTMLRenderer(BaseRenderer): return [self.template_name] elif hasattr(view, 'get_template_names'): return view.get_template_names() - raise ImproperlyConfigured('Returned a template response with no template_name') + elif hasattr(view, 'template_name'): + return [view.template_name] + raise ImproperlyConfigured('Returned a template response with no `template_name` attribute set on either the view or response') def get_exception_template(self, response): template_names = [name % {'status_code': response.status_code} @@ -388,7 +390,7 @@ class HTMLFormRenderer(BaseRenderer): # likely change at some point. self.renderer_context = renderer_context or {} - request = renderer_context['request'] + request = self.renderer_context['request'] # Creating an on the fly form see: # http://stackoverflow.com/questions/3915024/dynamically-creating-classes-python @@ -419,8 +421,13 @@ class BrowsableAPIRenderer(BaseRenderer): """ renderers = [renderer for renderer in view.renderer_classes if not issubclass(renderer, BrowsableAPIRenderer)] + non_template_renderers = [renderer for renderer in renderers + if not hasattr(renderer, 'get_template_names')] + if not renderers: return None + elif non_template_renderers: + return non_template_renderers[0]() return renderers[0]() def get_content(self, renderer, data, |
