【问题标题】:Filtering by BooleanProperty using NDB in Google App Engine在 Google App Engine 中使用 NDB 按 BooleanProperty 过滤
【发布时间】:2016-11-17 23:32:29
【问题描述】:

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

class MyObject(ndb.Model)
    availability = ndb.BooleanProperty()

当我运行查询时,它会搜索所有 availability 设置为 True 的对象。我看到以下错误

TypeError: Cannot filter a non-Node argument; received BooleanProperty('availability')

这就是我创建query的方式

    query = cls.query()
    query.filter(cls.availability)

如何查询all the objects whose booleanproperty is set to true

【问题讨论】:

  • 过滤器不应该是query.filter(cls.availability == True)吗?
  • 是的,修复了它。出于某种原因,我认为 == True 是多余的。我想在这种情况下这是必要的。

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


【解决方案1】:

查询过滤器还必须包括属性的过滤操作和操作的值,它们都没有默认值:

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])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多