我有一堆继承自一个公共基类的类。这个公共基类在其delete方法中做了一些清理工作。
class Base(models.Model):
def delete(self):
print "foo"
class Child(Base):
def delete(self):
print "bar"
super(Child, self).delete()当我从shell中调用delete on the Child时,我得到:
bar
foo不出所料
当我使用admin时,似乎没有调用自定义的delete函数。我是不是漏掉了什么明显的东西?
谢谢,
Dom
附注:这显然是我使用的代码的简化版本,如果其中包含拼写错误,很抱歉。请随时留言,我会修正的。
发布于 2009-05-19 21:54:56
根据this文档错误报告(Document that the admin bulk delete doesn't call Model.delete()),管理员的批量删除不会调用模型的删除函数。如果您在管理员中使用批量删除,这将解释您的问题。
从这张票据上添加的文档中,建议您编写一个自定义批量删除函数,该函数将调用模型的删除函数。
有关此行为的更多信息请访问here。为了提高效率,批量删除操作不调用模型的delete()方法。
https://stackoverflow.com/questions/885103
复制相似问题