docs: def delete_selected(self, request, queryset):
          '''
          The real delete function always evaluated either from the action, or from the instance delete link
          '''
          opts = self.model._meta
          app_label = opts.app_label
  
          # Populate deletable_objects, a data structure of all related objects that
          # will also be deleted.
          deletable_objects, model_count, perms_needed, protected = self.get_deleted_objects(request, queryset)
  
          # The user has already confirmed the deletion.
          # Do the deletion and return a None to display the change list view again.
          if request.POST.get('post') and not protected:
              if perms_needed or protected:
                  raise PermissionDenied
              n = queryset.count()
              if n:
                  for obj in queryset:
                      obj_display = force_text(obj)
                      self.log_deletion(request, obj, obj_display)
                  queryset.delete()
                  self.message_user(request, _("Successfully deleted %(count)d %(items)s.") % {
                      "count": n, "items": model_ngettext(self.opts, n)
                  }, messages.SUCCESS)
              # Return None to display the change list page again.
              return None
  
          sz = queryset.count()
          if sz == 1:
              objects_name = _('%(verbose_name)s "%(object)s"') % {
                  'verbose_name': force_text(opts.verbose_name),
                  'object': queryset[0]
              }
          else:
              objects_name = _('%(count)s %(verbose_name_plural)s') % {
                  'verbose_name_plural': force_text(opts.verbose_name_plural),
                  'count': sz
              }
  
          if perms_needed or protected:
              title = _("Cannot delete %(name)s") % {"name": objects_name}
          else:
              title = _("Are you sure?")
  
          context = dict(
              self.admin_site.each_context(request),
              title=title,
              objects_name=objects_name,
              deletable_objects=[deletable_objects],
              model_count=dict(model_count).items(),
              queryset=queryset,
              perms_lacking=perms_needed,
              protected=protected,
              opts=opts,
              action_checkbox_name=helpers.ACTION_CHECKBOX_NAME,
              media=self.media,
          )
  
          request.current_app = self.admin_site.name
  
          # Display the confirmation page
          return TemplateResponse(request, self.delete_selected_confirmation_template or [
              "admin/%s/%s/delete_selected_confirmation.html" % (app_label, opts.model_name),
              "admin/%s/delete_selected_confirmation.html" % app_label,
              "admin/delete_selected_confirmation.html"
          ], context)