覆盖Django Admin的保存方法

时间:2016-04-06 06:32:28

标签: django django-admin

好吧,我想保存模型的任何实例而不关心DDBB结构。所以我决定在每个模型的类中覆盖def save。种类:

def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
    if condition:
        raise Exception("You can´t insert that element")
    return super(name_class, self).save(self, force_insert=force_insert, force_update=force_update, using=using, update_fields=update_fields)

好吧,有了这个我实现插入不引发异常,但是如果实例通过了这个检查我想在数据库中插入任何主要限制存在...

我怎样才能得到它?

我想我必须覆盖save的核心代码,但我查了一下,但是我找不到检查数据库中插入条件的部分。 也许,问题只在于表格的验证。

如何在Django Admin中覆盖特定表单?具体来说,我添加,删除或编辑模型的一个类。

2 个答案:

答案 0 :(得分:20)

您可以覆盖ModelAdmin的save_model

parents.list <- setNames(split(parents, seq(nrow(parents))), rownames(parents))

答案 1 :(得分:1)

你不应该在保存方法中进行任何类型的验证,模型有一个clean方法,所以你想做的任何验证应该在那里完成

有关详细信息,请参阅validating objects