Python Django模型:如何使用mixin类覆盖Django模型以实现函数save
我想在每个模型保存之前验证值。因此,我必须重写save函数。 上面的代码几乎完全相同,我想在mixin类中编写它。但是失败了 我不知道如何写超级函数 对不起,我的英语很差Python Django模型:如何使用mixin类覆盖Django模型以实现函数save,python,django,model,overriding,Python,Django,Model,Overriding,我想在每个模型保存之前验证值。因此,我必须重写save函数。 上面的代码几乎完全相同,我想在mixin类中编写它。但是失败了 我不知道如何写超级函数 对不起,我的英语很差 class SyncableMixin(object): def save(self, *args, **kwargs): try: res = validate(*args, **kwargs) except Exception: raise ValidateException()
class SyncableMixin(object):
def save(self, *args, **kwargs):
try:
res = validate(*args, **kwargs)
except Exception:
raise ValidateException()
super(?, self).save(*args, **kwargs)
class SomeModel(SyncableMixin, models.Model):
pass
您总是在超级调用中引用当前的类
super(SyncableMixin, self).save(*args, **kwargs)
对于mixin和普通子类来说都是如此
(另外,不要捕获一个基本异常,尤其是不要捕获只会引发另一个异常的东西——这毫无意义。)