使用Google App Engine中的NDB通过BooleanProperty进行过滤

时间:2016-11-17 23:32:29

标签: google-app-engine google-cloud-datastore app-engine-ndb google-app-engine-python

我的一个模型对象中有一个布尔属性

var dirs = JObject.Parse(json)
            .Descendants()
            .Where(x=>x is JObject)
            .Where(x=>x["id"]!=null && x["name"]!=null)
            .Select(x =>new { ID= (int)x["id"], Name = (string)x["name"] })
            .ToList();

var id = dirs.Find(x => x.Name == "route3").ID;

当我运行查询时,会搜索class MyObject(ndb.Model) availability = ndb.BooleanProperty() 设置为True的所有对象。我看到以下错误

availability

这是我创建TypeError: Cannot filter a non-Node argument; received BooleanProperty('availability')

的方法
query

如何查询 query = cls.query() query.filter(cls.availability)

1 个答案:

答案 0 :(得分:3)

查询过滤器还必须包含属性的过滤操作和操作的值,其中没有一个带有默认值:

query.filter(cls.availability == True)

来自Filtering by Property Values

  

NDB支持这些操作:

property == value
property < value
property <= value
property > value
property >= value
property != value
property.IN([value1, value2])