diff options
Diffstat (limited to 'rest_framework/renderers.py')
| -rw-r--r-- | rest_framework/renderers.py | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index c4de30db..6256acdd 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -18,7 +18,7 @@ from django.template import Context, RequestContext, loader, Template  from django.test.client import encode_multipart  from django.utils import six  from rest_framework import exceptions, serializers, status, VERSION -from rest_framework.compat import SHORT_SEPARATORS, LONG_SEPARATORS +from rest_framework.compat import SHORT_SEPARATORS, LONG_SEPARATORS, INDENT_SEPARATORS  from rest_framework.exceptions import ParseError  from rest_framework.settings import api_settings  from rest_framework.request import is_form_media_type, override_method @@ -43,7 +43,7 @@ class BaseRenderer(object):      render_style = 'text'      def render(self, data, accepted_media_type=None, renderer_context=None): -        raise NotImplemented('Renderer class requires .render() to be implemented') +        raise NotImplementedError('Renderer class requires .render() to be implemented')  class JSONRenderer(BaseRenderer): @@ -87,7 +87,11 @@ class JSONRenderer(BaseRenderer):          renderer_context = renderer_context or {}          indent = self.get_indent(accepted_media_type, renderer_context) -        separators = SHORT_SEPARATORS if (indent is None and self.compact) else LONG_SEPARATORS + +        if indent is None: +            separators = SHORT_SEPARATORS if self.compact else LONG_SEPARATORS +        else: +            separators = INDENT_SEPARATORS          ret = json.dumps(              data, cls=self.encoder_class, @@ -301,6 +305,9 @@ class HTMLFormRenderer(BaseRenderer):      })      def render_field(self, field, parent_style): +        if isinstance(field, serializers.HiddenField): +            return '' +          style = dict(self.default_style[field])          style.update(field.style)          if 'template_pack' not in style: @@ -584,6 +591,11 @@ class BrowsableAPIRenderer(BaseRenderer):                  renderer_content_type += ' ;%s' % renderer.charset          response_headers['Content-Type'] = renderer_content_type +        if hasattr(view, 'paginator') and view.paginator.display_page_controls: +            paginator = view.paginator +        else: +            paginator = None +          context = {              'content': self.get_content(renderer, data, accepted_media_type, renderer_context),              'view': view, @@ -592,6 +604,7 @@ class BrowsableAPIRenderer(BaseRenderer):              'description': self.get_description(view),              'name': self.get_name(view),              'version': VERSION, +            'paginator': paginator,              'breadcrumblist': self.get_breadcrumbs(request),              'allowed_methods': view.allowed_methods,              'available_formats': [renderer_cls.format for renderer_cls in view.renderer_classes], | 
