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, | 
