                  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[request._CONTENTTYPE_PARAM] = forms.ChoiceField(label='Content Type',
                                                                           choices=contenttype_choices,
                                                                           initial=initial_contenttype)
                  self.fields[request._CONTENT_PARAM] = forms.CharField(label='Content',
                                                                     widget=forms.Textarea)
  
          # 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
  
 
</s> remove         # form = self.get_bound_form()
        # if form is not None:
 </s> add         # serializer = self.get_serializer()
        # if serializer is not None: </s> remove         if object and not self.view.request.method == 'DELETE':  # Don't fill in the form when the object is deleted
 </s> add         if object and not view.request.method == 'DELETE':  # Don't fill in the form when the object is deleted </s> remove         if not hasattr(self.view, 'get_serializer'):  # No serializer, no form.
            return
 </s> add         if not method in view.allowed_methods:
            return  # Not a valid method

        if not api_settings.FORM_METHOD_OVERRIDE:
            return  # Cannot use form overloading

        temp = request._method
        request._method = method.upper()
        if not view.has_permission(request):
            request._method = temp
            return  # Don't have permission
        request._method = temp

        if method == 'DELETE' or method == 'OPTIONS':
            return True  # Don't actually need to return a form

        if not getattr(view, 'get_serializer', None):
            return self.get_generic_content_form(view)
 </s> remove         if hasattr(self.view, 'object'):
            object = self.view.object
        serializer = self.view.get_serializer(instance=object)
 </s> add         if getattr(view, 'object', None):
            object = view.object
        serializer = view.get_serializer(instance=object) </s> remove         if not getattr(view.request, '_USE_FORM_OVERLOADING', False):
 </s> add         if not (api_settings.FORM_CONTENT_OVERRIDE
                and api_settings.FORM_CONTENTTYPE_OVERRIDE):
                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
                    label='Content Type',
                    choices=contenttype_choices,
                    initial=initial_contenttype
                )
                self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                    label='Content',
                    widget=forms.Textarea
                )
                  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(
                    label='Content Type',
                    choices=contenttype_choices,
                    initial=initial_contenttype
                )
                self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                    label='Content',
                    widget=forms.Textarea
                )
                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
                    label='Content Type',
                    choices=contenttype_choices,
                    initial=initial_contenttype
                )
                self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                    label='Content',
                    widget=forms.Textarea
                )
                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
                    label='Content Type',
                    choices=contenttype_choices,
                    initial=initial_contenttype
                )
                self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                    label='Content',
                    widget=forms.Textarea
                )
                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
                    label='Content Type',
                    choices=contenttype_choices,
                    initial=initial_contenttype
                )
                self.fields[api_settings.FORM_CONTENT_OVERRIDE] = forms.CharField(
                    label='Content',
                    widget=forms.Textarea
                )
                self.fields[api_settings.FORM_CONTENTTYPE_OVERRIDE] = forms.ChoiceField(
                    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
          if self.view.request._CONTENTTYPE_PARAM is None or self.view.request._CONTENT_PARAM is None:
              return None
  
keep keep keep keep replace replace replace replace replace keep keep keep keep keep
 Only display forms when user has permissions.  #159 
rest_framework/renderers.py