docs: def unpublish(self):
          """
          Un-publish the current object.
          """
          if self.is_draft and self.publishing_linked:
              publishing_signals.publishing_pre_unpublish.send(
                  sender=type(self), instance=self)
              # Unlink draft and published copies then delete published.
              # NOTE: This indirect dance is necessary to avoid triggering
              # unwanted MPTT tree structure updates via `delete`.
              type(self.publishing_linked).objects \
                  .filter(pk=self.publishing_linked.pk) \
                  .delete()  # Instead of self.publishing_linked.delete()
              # NOTE: We update and save the object *after* deleting the
              # published version, in case the `save()` method does some
              # validation that breaks when unlinked published objects exist.
              self.publishing_linked = None
              self.publishing_published_at = None
  
              # Save the draft to remove its relationship with the published copy
              publishing_signals.publishing_unpublish_save_draft.send(
                  sender=type(self), instance=self)
  
              publishing_signals.publishing_post_unpublish.send(
                  sender=type(self), instance=self)