          """
  
          # If we're not using content overloading there's no point in supplying a generic form,
          # as the view won't treat the form's value as the content of the request.
          if not getattr(view.request, '_USE_FORM_OVERLOADING', False):
              return None
  
          # NB. http://jacobian.org/writing/dynamic-form-generation/
          class GenericContentForm(forms.Form):
              def __init__(self, view, request):
 
</s> remove     def _get_form_instance(self, view, method):
 </s> add     def get_form(self, view, method, request): </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     def _get_content(self, view, request, obj, media_type):
 </s> add     def get_content(self, view, request, obj, media_type): </s> remove                 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)
 </s> add                 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
                ) </s> remove         # form = self.get_bound_form()
        # if form is not None:
 </s> add         # serializer = self.get_serializer()
        # if serializer is not None:
        if not (api_settings.FORM_CONTENT_OVERRIDE
                and api_settings.FORM_CONTENTTYPE_OVERRIDE):
          """
  
          # If we're not using content overloading there's no point in supplying a generic form,
          # as the view won't treat the form's value as the content of the request.
        if not (api_settings.FORM_CONTENT_OVERRIDE
                and api_settings.FORM_CONTENTTYPE_OVERRIDE):
              return None
  
          # NB. http://jacobian.org/writing/dynamic-form-generation/
          class GenericContentForm(forms.Form):
              def __init__(self, view, request):
keep keep keep keep replace keep keep keep keep keep
 Only display forms when user has permissions.  #159 
rest_framework/renderers.py