是否可以为某些实体设置ComputedProperty?

时间:2013-04-25 16:18:21

标签: google-app-engine properties app-engine-ndb

在我的应用程序中,我有一个类似的模型:

class MyModel(ndb.Model):
    entity_key_list = ndb.KeyProperty('k', repeated=True, indexed=False)
    entity_key_num = ndb.ComputedProperty('n', lambda self: len(self.entity_key_list))
    verified = ndb.BooleanProperty('v')

验证为false时是否可以拥有entity_key_num属性?

1 个答案:

答案 0 :(得分:2)

如果不是None,您可以返回verified

entity_key_num = ndb.ComputedProperty('n', lambda self: len(self.entity_key_list) if not self.verified else None)

如果您根本不想拥有值None并动态删除或创建此属性,那么您将必须使用ndb.Expando类来执行所有这些奇特的操作。请注意,您将无法删除ComputedProperty,因此您必须自行跟踪该值。