I am using soft delete in my django admin made like this . The problem is that when I delete a foreign key element, it does not trigger the deletion for all the elements to which it is attached. Or maybe it works, but it doesnβt have the user def delete , which I have on my model.
-If I delete someone, then they will be gently deleted, but the linked account will remain untouched.
-If I delete soft deletions, then when I delete a Face, Accounts are also deleted, which is correct.
Therefore, when I delete the Person, I want him to gently delete the Person and Accounts that refer to the Person, also be soft (marking them inactive).
class Person(models.Model): description = models.CharField(max_length=100) def delete(self, *args, **kwargs): self.active = False self.deleted_date = datetime.now() self.save() class Account(models.Model): name = models.CharField(max_length=50) person = models.ForeignKey(Person, null=True, blank=True) active = models.BooleanField(default=True, editable=False) objects = SoftDeleteManager() def delete(self, *args, **kwargs): self.active = False self.deleted_date = datetime.now() self.save() def __unicode__(self): return "%s: %s" % (self.type,self.name)
UPDATE: I updated the question. I did not say that I am running soft deletion on the Person model. It is also added that when def deletion is not overridden, that cascading deletions work, but when I redefine deletion, cascading does not start.
source share