che*_*uan 4 python django overriding model
我希望在每个模型保存之前验证值.所以,我必须覆盖保存功能.代码几乎是一样的,我想在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
Run Code Online (Sandbox Code Playgroud)
您总是在超级调用中引用当前类.
super(SyncableMixin, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
这对于mixins以及普通的子类化都是如此.
(另外,不要捕获基本异常,特别是不要抓住东西只是为了引发另一个异常 - 这完全没有意义.)
| 归档时间: |
|
| 查看次数: |
2038 次 |
| 最近记录: |