我想在每个模型保存之前验证值。所以,我必须覆盖保存功能。 代码几乎是一样的,我想在mixin类中编写它。但失败了 我不知道怎么写超级功能。
我的英语很差,很抱歉。
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
答案 0 :(得分:7)
您总是在超级通话中引用当前类。
super(SyncableMixin, self).save(*args, **kwargs)
对于mixins和普通的子类化都是如此。
(另外,不要捕获基础异常,特别是不要抓住东西只引发另一个异常 - 这完全没有意义。)