docs: def delete_selected_tree(self, modeladmin, request, queryset):
          """
          Deletes multiple instances and makes sure the MPTT fields get recalculated properly.
          (Because merely doing a bulk delete doesn't trigger the post_delete hooks.)
          """
          # If the user has not yet confirmed the deletion, call the regular delete
          # action that will present a confirmation page
          if not request.POST.get('post'):
              return actions.delete_selected(modeladmin, request, queryset)
          # Otherwise, delete objects one by one
          n = 0
          for obj in queryset:
              obj.delete()
              n += 1
          self.message_user(request, _("Successfully deleted %s items." % n))