          else:
              self.action = self.action_map.get(method)
          return request
  
  
  class ViewSet(ViewSetMixin, views.APIView):
      """
      The base ViewSet class does not provide any actions by default.
 
</s> remove         # The suffix initkwarg is reserved for identifying the viewset type
 </s> add         # The suffix initkwarg is reserved for displaying the viewset type. </s> remove                 view = viewset.as_view(mapping, **route.initkwargs)
 </s> add                 initkwargs = route.initkwargs.copy()
                initkwargs.update({
                    'basename': basename,
                })

                view = viewset.as_view(mapping, **initkwargs)
    def reverse_action(self, url_name, *args, **kwargs):
        """
        Reverse the action for the given `url_name`.
        """
        url_name = '%s-%s' % (self.basename, url_name)
        kwargs.setdefault('request', self.request)

        return reverse(url_name, *args, **kwargs)

          else:
              self.action = self.action_map.get(method)
          return request
  
    def reverse_action(self, url_name, *args, **kwargs):
        """
        Reverse the action for the given `url_name`.
        """
        url_name = '%s-%s' % (self.basename, url_name)
        kwargs.setdefault('request', self.request)

        return reverse(url_name, *args, **kwargs)

  
  class ViewSet(ViewSetMixin, views.APIView):
      """
      The base ViewSet class does not provide any actions by default.
keep keep keep add keep keep keep keep
 Add '.basename' and '.reverse_action()' to ViewSet (#5648)

* Router sets 'basename' on ViewSet

* Add 'ViewSet.reverse_action()' method

* Test router setting initkwargs 
rest_framework/viewsets.py