在谷歌应用引擎上存储数据或查询数据的最佳方式

时间:2014-09-01 23:15:47

标签: google-app-engine python-2.7

我希望能够在app引擎中存储一些数据,我正在寻找一些关于存储数据或通过查询检索数据的最佳方法的帮助。我有一个用户列表,希望他们能够添加他们想要出售的汽车并输入他们可以接受的上限和下限。当用户正在搜索汽车并输入价格时,如果此价格在下限和上限之间,则会返回汽车:

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:每个查询只支持一个不等式过滤器。

我应该以不同方式构建或存储数据以允许过滤一个不等式,还是应该尝试使用和/或查询?

你还有别的推荐吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

holder = User.query(User.car.lowerprice&gt; = int(self.carprice))。get())
results = filter(lambda x:x.car.maxprice&lt; int(self.carprice),holder)

归结为必须以可编程方式处理第二个过滤器。