Example #1
0
    def delete(self, db_delete=False):
        if db_delete:
            super(SoftDeletedQuerySet, self).delete()
        else:
            pre_soft_delete.send(sender=self.__class__, queryset=self)
            deleted_key = "queryset_%s" % get_random_hash()
            deleted_at = datetime.now()
            self.update(is_deleted=True, deleted_at=deleted_at, deleted_key=deleted_key)
            post_soft_delete.send(sender=self.__class__, queryset=self)

            kwargs = {
                "module": self.model.__module__,
                "cls": self.model.__name__,
                "deleted_at": deleted_at,
                "deleted_key": deleted_key,
            }
            delete_hard.apply_async(kwargs=kwargs, countdown=HARD_DELETE_TIME)
Example #2
0
    def delete(self, *args, **kwargs):
        """
        Zajistuje nastavovani is_deleted misto mazani
        """
        if kwargs.pop("db_delete", False):
            super(SoftDeletedModel, self).delete(*args, **kwargs)
        else:
            pre_soft_delete.send(sender=self.__class__, instance=self)
            self.is_deleted = True
            self.deleted_key = _get_random_hash()
            self.deleted_at = datetime.now()
            self.save()
            post_soft_delete.send(sender=self.__class__, instance=self)

            kwargs = {
                "module": self.__module__,
                "cls": self.__class__.__name__,
                "deleted_at": self.deleted_at,
                "deleted_key": self.deleted_key,
            }
            delete_hard.apply_async(kwargs=kwargs, countdown=HARD_DELETE_TIME)