1

У меня есть логическое свойство в одном из моей модели объектовФильтрация по BooleanProperty с помощью ОПРС в Google App Engine

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

+1

Не следует ли фильтр быть 'query.filter (cls.availability == True)'? –

+0

Yup, который исправил его. По какой-то причине я думал, что == Истина была излишней. Думаю, в этом случае это необходимо. – user462455

ответ

2

Фильтр запрос должен также включать в себя операцию фильтрации для свойства и значения (значений) для операции, ни одна из которых не имеет значения по умолчанию:

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