Django - 在基类中覆盖模型的delete()方法 - 递归问题

时间:2010-11-11 15:14:12

标签: django django-models

我有一个抽象类,它为我的所有模型提供了一些常用方法。我在所有模型中都继承了这个类。现在需要在删除模型时发送邮件。所以我在抽象类中重写了delete()方法。这导致了相同方法的递归调用,因为调用了super方法。

    super(Model, self).save(*args, **kwargs) 

    class Common(models.Model): 
             #mail logic
             super(type(self), self).delete(*args, **kwargs)        

    class Child(Common)      
             # fields

1 个答案:

答案 0 :(得分:4)

这就是为什么您必须始终使用正确的类型而不是type(self)

super(Common, self).delete(*args, **kwargs)