          func.name = name if name else pretty_name(func.__name__)
          func.url_path = url_path if url_path else func.__name__
          func.url_name = url_name if url_name else func.__name__.replace('_', '-')
          func.kwargs = kwargs
          func.kwargs.update({
              'name': func.name,
              'description': func.__doc__ or None
          })
  
          return func
      return decorator
  
  
 
</s> remove         func.name = name if name else pretty_name(func.__name__)
 </s> add  </s> remove def action(methods=None, detail=None, name=None, url_path=None, url_name=None, **kwargs):
 </s> add def action(methods=None, detail=None, url_path=None, url_name=None, **kwargs): </s> remove                 action_urls[action.name] = url
 </s> add                 view = self.__class__(**action.kwargs)
                action_urls[view.get_view_name()] = url
        # Set descriptive arguments for viewsets
        if 'name' not in kwargs and 'suffix' not in kwargs:
            func.kwargs['name'] = pretty_name(func.__name__)
        func.kwargs['description'] = func.__doc__ or None
          func.name = name if name else pretty_name(func.__name__)
          func.url_path = url_path if url_path else func.__name__
          func.url_name = url_name if url_name else func.__name__.replace('_', '-')
          func.kwargs = kwargs
        # Set descriptive arguments for viewsets
        if 'name' not in kwargs and 'suffix' not in kwargs:
            func.kwargs['name'] = pretty_name(func.__name__)
        func.kwargs['description'] = func.__doc__ or None
        # Set descriptive arguments for viewsets
        if 'name' not in kwargs and 'suffix' not in kwargs:
            func.kwargs['name'] = pretty_name(func.__name__)
        func.kwargs['description'] = func.__doc__ or None
        # Set descriptive arguments for viewsets
        if 'name' not in kwargs and 'suffix' not in kwargs:
            func.kwargs['name'] = pretty_name(func.__name__)
        func.kwargs['description'] = func.__doc__ or None
        # Set descriptive arguments for viewsets
        if 'name' not in kwargs and 'suffix' not in kwargs:
            func.kwargs['name'] = pretty_name(func.__name__)
        func.kwargs['description'] = func.__doc__ or None
  
          return func
      return decorator
  
  
keep keep keep keep replace replace replace replace keep keep keep keep keep
 Fix action support for ViewSet suffixes (#6081)

* Add suffix support for actions

Removes the newly introduced `action.name` in favor of leveraging the
View's `.get_view_name()` method, which supports both name and suffix.

* Fix view description func docstrings

* Test action decorator name & suffix kwargs

* Adjust 'extra action' docs 
rest_framework/decorators.py