2014-09-01 38 views
0

我希望能夠將某些數據存儲在應用引擎中,並且正在尋找一些有關存儲數據或通過查詢檢索數據的最佳方法的幫助。我有一個用戶列表,並希望他們能夠添加他們想要出售的汽車,並輸入他們接受的上限和下限。當用戶搜索汽車,並進入一個價格,如果這個價格是下限和上限之間,它將返回車:在Google應用引擎上存儲數據或查詢數據的最佳方式

class User(ndb.Model): 
    username = ndb.StringProperty() 
    cars = ndb.StructuredProperty(Car, repeated = True) 
    datecreated = ndb.DateTimeProperty(auto_now_add = True) 
    date_last_modified = ndb.DateTimeProperty(auto_now = True) 

class Car(ndb.Model): 
    lowerprice = ndb.IntegerProperty() 
    maxprice = ndb.IntegerProperty() 
    make = ndb.StringProperty() 
    model = ndb.StringProperty() 
    datecreated = ndb.DateTimeProperty(auto_now_add = True) 
    date_last_modified = ndb.DateTimeProperty(auto_now = True) 

我不能過濾的:

c = User.query(User.car.lowerprice >= int(self.carprice), User.car.maxprice < int(self.carprice)).get()) 

因爲它返回BadRequestError:每個查詢只支持一個不等式過濾器。

我是否應該以不同的方式構造或存儲數據以允許對一個不等式進行過濾,或者我應該嘗試使用和/或查詢?

還有什麼可以推薦的嗎?

回答

0

嘗試是這樣的:

架= User.query(User.car.lowerprice> = INT(self.carprice))得到())
結果=過濾器(拉姆達X:x.car .maxprice < int(self.carprice),holder)

它歸結爲必須編程處理第二個過濾器。

相關問題