В Google App Engine я хотел бы знать, можно ли создать условия в запросе ndb следующим образом. Предположим, у меня есть следующий код:Google app engine: ndb query done cleaner
if bidded == '':
productRanks = Product.query(Product.bidTime>=startDate,
Product.bidTime<endDate).fetch()
elif bidded == 'yes':
productRanks = Product.query(Product.bidTime>=startDate
Product.bidTime<endDate,
Product.bidded=='yes').fetch()
else:
productRanks = Product.query(Product.bidTime>=startDate
Product.bidTime<endDate,
Product.bidded=='no').fetch()
Это выглядит действительно грязно. Гипотетически, я хотел бы иметь возможность сделать следующее. Является ли это возможным? Если да, то как?
condition = 'Product.bidTime>=startDate, Product.bidTime<endDate'
if bidded = 'yes':
condition = condition + ', Product.bidded=='yes'
elif bidded == 'no':
condition = condition + ', Product.bidded=='no'
productRanks = Product.query(condition).fetch()
Спасибо. Но еще одна проблема заключается в следующем: когда я выполнял фильтрацию в разных полях, я получил сообщение об ошибке _ «Поддерживается только один фильтр неравенства для каждого запроса. Обнаружены оба ...» _ –
Правильно. Сообщение об ошибке отражает ограничения возможностей запроса хранилища данных. Вероятно, вам придется изменить свою модель, чтобы агрегировать различные значения во время записи, чтобы сделать запросы, которые вы хотите. –
он также может заплатить, чтобы посмотреть на поиск api и посмотреть, какие запросы там возможны. –