在GAE的db.Model
属性中,我们有一个required
参数,该参数不允许创建该模型的实体而没有该属性的值。
e.g:
class user(db.Model):
isFromUK = db.BoolProperty(required = True)
fromCounty = db.StringProperty()
required = True
如果fromCounty
,我怎样才能在isFromUK == True
@ClassMethod
上实现?
我知道这可能无法在GAE实施中直接实现(I have not found a way in docs) - 但我想知道是否有一些简单的方法可以实现这一点,也许是{{1}}?
我以前没有理由使用过,所以我不确定是否能提供解决方案。
答案 0 :(得分:1)
这是在继续常规(即超级类'.put)之前覆盖.put()
进行特殊验证的方法:
class user(db.Model):
...
def put(self, *args, **kw):
if self.isFromUK:
if not self.fromCountry:
raise ValueError("Need fromCountry if isFromUK..")
super(user, self).put(*args, **kwargs)