如果另一个具有一定值,GAE需要模型属性吗?

时间:2014-07-06 20:39:25

标签: python google-app-engine

在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}}?

我以前没有理由使用过,所以我不确定是否能提供解决方案。

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)