          obj = getattr(view, 'object', None)
          if not self.show_form_for_method(view, method, request, obj):
              return
  
          if method == 'DELETE' or method == 'OPTIONS':
              return True  # Don't actually need to return a form
  
          if not getattr(view, 'get_serializer', None) or not parsers.FormParser in view.parser_classes:
              media_types = [parser.media_type for parser in view.parser_classes]
              return self.get_generic_content_form(media_types)
 
</s> remove             media_types = [parser.media_type for parser in view.parser_classes]
            return self.get_generic_content_form(media_types)
 </s> add             return
        if method in ('DELETE', 'OPTIONS'):
          obj = getattr(view, 'object', None)
          if not self.show_form_for_method(view, method, request, obj):
              return
  
        if method in ('DELETE', 'OPTIONS'):
              return True  # Don't actually need to return a form
  
          if not getattr(view, 'get_serializer', None) or not parsers.FormParser in view.parser_classes:
              media_types = [parser.media_type for parser in view.parser_classes]
              return self.get_generic_content_form(media_types)
keep keep keep keep replace keep keep keep keep keep
 Added tabs between object form and generic content form on PUT/PATCH form

Some extra behaviour to `BrowsableAPIRenderer` to handle PATCH form.
Added PATCH button on generic content PUT form.
Tabs between object form and generic content form on PUT/PATCH form wich are
both allways visible now.

Fix #570
Refs #591 
rest_framework/renderers.py