                      label='Content Type',
                      choices=contenttype_choices,
                      initial=initial_contenttype
                  )
                  self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                      label='Content',
                      widget=forms.Textarea
                  )
  
          # If either of these reserved parameters are turned off then content tunneling is not possible
 
</s> remove         # If either of these reserved parameters are turned off then content tunneling is not possible
        if self.view.request._CONTENTTYPE_PARAM is None or self.view.request._CONTENT_PARAM is None:
            return None

        # Okey doke, let's do it
        return GenericContentForm(view, view.request)
 </s> add         return GenericContentForm() </s> remove                     choices=contenttype_choices,
                    initial=initial_contenttype
 </s> add                     choices=choices,
                    initial=initial </s> remove                 parsed_media_types = [parser.media_type for parser in view.parser_classes]
                contenttype_choices = [(media_type, media_type) for media_type in parsed_media_types]
                initial_contenttype = parsed_media_types[0]

                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
 </s> add                 self.fields[content_type_field] = forms.ChoiceField( </s> remove         # If the media type looks like 'application/json; indent=4', then
        # pretty print the result.
        indent = get_media_type_params(accepted_media_type).get('indent', None)
        sort_keys = False
        try:
            indent = max(min(int(indent), 8), 0)
            sort_keys = True
        except (ValueError, TypeError):
            indent = None
 </s> add         # If 'indent' is provided in the context, then pretty print the result.
        # E.g. If we're being called by the BrowseableAPIRenderer.
        renderer_context = renderer_context or {}
        indent = renderer_context.get('indent', None)
        sort_keys = indent and True or False

        if accepted_media_type:
            # If the media type looks like 'application/json; indent=4',
            # then pretty print the result.
            params = get_media_type_params(accepted_media_type)
            indent = params.get('indent', indent)
            try:
                indent = max(min(int(indent), 8), 0)
                sort_keys = True
            except (ValueError, TypeError):
                indent = None </s> remove         Returns a form that allows for arbitrary content types to be tunneled via standard HTML forms
 </s> add         Returns a form that allows for arbitrary content types to be tunneled
        via standard HTML forms.
                self.fields[content_field] = forms.CharField(
                      label='Content Type',
                      choices=contenttype_choices,
                      initial=initial_contenttype
                  )
                self.fields[content_field] = forms.CharField(
                      label='Content',
                      widget=forms.Textarea
                  )
  
          # If either of these reserved parameters are turned off then content tunneling is not possible
keep keep keep keep replace keep keep keep keep keep
 Make sure JSON output in Browseable API is nicely indented 
rest_framework/renderers.py