覆盖 Django Admin 的保存方法

Override save method of Django Admin

好吧,我想保存模型的任何实例而不关心 DDBB 结构。所以我决定在每个模型的 class 中覆盖 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 中的特定表单?具体来说,就是我添加、删除或编辑模型的一个 class。

您可以覆盖 ModelAdminsave_model

class MyAdminView(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        super().save_model(request, obj, form, change)