Django Model: How to use mixin class to override django model for function likes save
我想在每次保存模型之前验证值。所以,我必须重写save函数。代码在上几乎是相同的,我想在mixin类中编写它。但是失败了我不知道怎么写超级func。
我英语不好,对不起。
1 2 3 4 5 6 7 8 9 10 11 | 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 |
您总是在超级调用中引用当前类。
1 | super(SyncableMixin, self).save(*args, **kwargs) |
这对于混合子类和普通子类都是正确的。
(同样,不要捕获基本异常,尤其是不要只捕获引发另一个异常的内容——这完全没有意义。)