code: def get_actions(self, request):
          
          # If self.actions is explicitly set to None that means that we don't
          # want *any* actions enabled on this page.
          if self.actions is None:
              return OrderedDict()
  
          actions = []
  
          # Gather actions from the admin site first
          for (name, func) in self.admin_site.actions:
              description = getattr(
                  func, 'short_description', name.replace('_', ' '))
              actions.append((func, name, description))
  
          # Then gather them from the model admin and all parent classes,
          # starting with self and working back up.
          for klass in self.__class__.mro()[::-1]:
              class_actions = getattr(klass, 'actions', [])
              # Avoid trying to iterate over None
              if not class_actions:
                  continue
              actions.extend(self.get_action(action) for action in class_actions)
  
          # get_action might have returned None, so filter any of those out.
          actions = filter(None, actions)
  
          # Convert the actions into an OrderedDict keyed by name.
          actions = OrderedDict(
              (name, (func, name, desc))
              for func, name, desc in actions
          )
  
          if 'delete_selected' in actions:
              del actions['delete_selected']
          return actions
docs: Return a dictionary mapping the names of all actions for this
          ModelAdmin to a tuple of (callable, name, description) for each action.