Django Admin&模型删除

时间:2009-05-19 21:26:03

标签: python django django-admin

我有一堆继承自公共基类的类。这个公共基类在delete方法中进行了一些清理。

class Base(models.Model):
    def delete(self):
        print "foo"

class Child(Base):
    def delete(self):
        print "bar"
        super(Child, self).delete()

当我从shell调用Child上的delete时,我得到:

bar
foo

按预期

当我使用admin时,似乎没有调用自定义删除功能。我错过了一些明显的东西吗?

谢谢,

的Dom

P.S。这显然是我正在使用的代码的简化版本,如果它包含拼写错误,则道歉。随意发表评论,我会解决它。

1 个答案:

答案 0 :(得分:9)

根据this文档错误报告(Document that the admin bulk delete doesn't call Model.delete()),管理员的批量删除不会调用模型的删除功能。如果您正在使用管理员批量删除,这可以解释您的问题。

从这个故障单上添加的文档中,建议是编写一个自定义批量删除函数来调用模型的删除函数。

有关此行为的进一步信息是here。为了提高效率,批量删除操作不会调用模型的delete()方法。