[Answer]-Determining a Model Has Been Deleted

1👍

There’s no built-in way, but you could easily set your own attribute on the model in the delete method and check for its existence:

def delete(self, *args, **kwargs):
    self.is_being_deleted = True
    ...

def cleanup_stuff(self):
    if not getattr(self, 'is_being_deleted', False):
        self.save()
    ...

0👍

As far as I know, there is no built-in helper. I would use and keyword argument in cleanup_stuff method:

def cleanup_stuff(self, deleting=False):
    ...

def delete(self, *args, **kwargs):
    with transaction.atomic():
        super(MyModel, self).delete(*args, **kwargs)
        self.cleanup_stuff(deleting=True)

Leave a comment