2011-12-20 60 views
0

我在模型中有一個屬性(isFull),該模型的值取決於同一模型中的其他屬性(counter)。在GAE的數據存儲中使用類似SQL的函數

到目前爲止,只要有任何屬性取決於變化,我就一直在設置屬性的值。我寫了一個函數isFull(),檢查counter並返回TrueFalse。但我不能,除非我取那麼一切都在檢查結果迭代,如果其中任何isFull,這是不好的,我知道..

有沒有用我用filtergql功能的方式與查詢使用它呢?還是有不同的方式呢?我知道我可以使用過濾器來檢查計數器,但它比在某些情況下更復雜,我需要同時檢查日期,計數器和另一個標記。

+0

我想過在模型類中保存查詢,並在該級別上做各種髒查詢,有沒有更好的方法? – 2011-12-20 22:32:52

回答

4

使用ComputedProperty線的東西到你的計算值存儲在數據存儲中的屬性,以使對isFull物業陳舊,需要你可以過濾。

+1

優秀。這怎麼沒記錄? – 2011-12-21 09:32:30

+0

是啊不知道是否一樣,感謝分享=) – 2011-12-21 15:11:34

0

我不知道如何在另一個變化時自動重新計算屬性。儘管可以通過創建自定義屬性來隱藏某些更新,但在更新它所依賴的屬性時仍需手動進行更新。

你可能不是想通過鏈接過濾,沿

query.filter('counter >', 42) 
query.filter('created <', datetime(2011,12,21)) 
query.filter('created >', datetime(2011,12,19)) 
query.filter('myflag =', true)