def publish_deletions(self, all_published=None, parent=None, dry_run=False):
    '\n        actually delete models that have been marked for deletion\n        '
    if (self.publish_state != Publishable.PUBLISH_DELETE):
        return
    if (all_published is None):
        all_published = NestedSet()
    if (self in all_published):
        return
    all_published.add(self, parent=parent)
    self._pre_publish(dry_run, all_published, deleted=True)
    for related in self._meta.get_all_related_objects():
        if (not issubclass(related.model, Publishable)):
            continue
        name = related.get_accessor_name()
        if (name in self.PublishMeta.excluded_fields()):
            continue
        try:
            instances = getattr(self, name).all()
        except AttributeError:
            instances = [getattr(self, name)]
        for instance in instances:
            instance.publish_deletions(all_published=all_published, parent=self, dry_run=dry_run)
    if (not dry_run):
        public = self.public
        self.delete(mark_for_deletion=False)
        if public:
            public.delete(mark_for_deletion=False)
    self._post_publish(dry_run, all_published, deleted=True)
actually delete models that have been marked for deletion
def publish_deletions(self, all_published=None, parent=None, dry_run=False):
    '\n        \n        '
    if (self.publish_state != Publishable.PUBLISH_DELETE):
        return
    if (all_published is None):
        all_published = NestedSet()
    if (self in all_published):
        return
    all_published.add(self, parent=parent)
    self._pre_publish(dry_run, all_published, deleted=True)
    for related in self._meta.get_all_related_objects():
        if (not issubclass(related.model, Publishable)):
            continue
        name = related.get_accessor_name()
        if (name in self.PublishMeta.excluded_fields()):
            continue
        try:
            instances = getattr(self, name).all()
        except AttributeError:
            instances = [getattr(self, name)]
        for instance in instances:
            instance.publish_deletions(all_published=all_published, parent=self, dry_run=dry_run)
    if (not dry_run):
        public = self.public
        self.delete(mark_for_deletion=False)
        if public:
            public.delete(mark_for_deletion=False)
    self._post_publish(dry_run, all_published, deleted=True)