我在模型中有一个属性(isFull
),其值取决于同一模型中的其他属性(counter
)。
到目前为止,我一直在设置属性值,只要它依赖于任何属性的变化。我写了一个函数isFull()
来检查counter
并返回True
或False
。但我不能将它用于查询,除非我获取所有内容然后迭代结果检查其中任何一个isFull
,这是我知道的不好。
有没有办法在filter
或gql
中使用我的功能?或者有不同的方式吗?我知道我可以使用过滤器来检查计数器,但它比在某些情况下更复杂,我需要同时检查日期,计数器和另一个标志。
答案 0 :(得分:4)
使用ComputedProperty将您的计算值存储为可以过滤的数据存储区中的属性。
答案 1 :(得分:0)
我不知道在另一个属性发生变化时如何自动重新计算属性。虽然您可以通过创建自定义属性来隐藏某些更新,但在更新它依赖的属性时仍需要手动更新它。
您可能希望通过链接过滤来使对isFull属性的需求过时,这与
相似。query.filter('counter >', 42)
query.filter('created <', datetime(2011,12,21))
query.filter('created >', datetime(2011,12,19))
query.filter('myflag =', true)