Django管理员和模型删除

Dom*_*ger 2 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()
Run Code Online (Sandbox Code Playgroud)

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

bar
foo
Run Code Online (Sandbox Code Playgroud)

正如所料

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

谢谢,

大教堂

ps这显然是我正在使用的代码的简化版本,如果它包含拼写错误,则道歉.随意留言,我会解决它.

bch*_*ang 9

根据文档错误报告(管理批量删除不会调用Model.delete()的文档),管理员的批量删除不会调用模型的删除功能.如果您正在使用管理员批量删除,这可以解释您的问题.

从这个故障单上添加的文档中,建议是编写一个自定义批量删除功能,该功能可以调用模型的删除功能.

此行为的更多信息,点击这里.delete()为了提高效率,批量删除操作不会调用模型的方法.