  router.register(r'actions', ActionViewSet)
  router.register(r'actions-alt', ActionViewSet, basename='actions-alt')
  
  
  urlpatterns = [
      url(r'^api/', include(router.urls)),
  ]
  
 
</s> remove         func.name = name if name else pretty_name(func.__name__)
 </s> add  </s> remove                 action_urls[action.name] = url
 </s> add                 view = self.__class__(**action.kwargs)
                action_urls[view.get_view_name()] = url </s> remove         func.kwargs.update({
            'name': func.name,
            'description': func.__doc__ or None
        })
 </s> add         # 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
router.register(r'names', ActionNamesViewSet, basename='names')
  router.register(r'actions', ActionViewSet)
  router.register(r'actions-alt', ActionViewSet, basename='actions-alt')
router.register(r'names', ActionNamesViewSet, basename='names')
  
  
  urlpatterns = [
      url(r'^api/', include(router.urls)),
  ]
  
keep add keep 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 
tests/test_viewsets.py