2
我有這樣的模式:GAE數據存儲:按日期間隔濾波器
class Vehicle(db.Model):
...
start_production_date = db.DateProperty()
end_production_date = db.DateProperty()
我需要過濾,例如,所有的內,比如在生產汽車,2010:
我想我可以這樣做:
q = (Vehicle.all()
.filter('start_production_date >=', datetime(2010, 1, 1))
.filter('end_production_date <', datetime(2011, 1, 1)))
買我得到BadFilterError
:
BadFilterError: invalid filter: Only one property per query may have inequality filters (<=, >=, <, >)..
那麼,我該如何實現這個目標呢?而且這在我看來是一個相當普遍的任務。
對不起,但這並不解決了這個問題:我如何在生產在2010年篩選模式?那一年是**開始和結束日期之間的**。例如,有些模型在2000年開始建造,並在2012年停產,等等。 – neurino 2013-02-19 15:04:04
@neurino你可以手動創建這些列表,然後使用'IN'運算符。例如,如果'start_list = [2000,2001,2002,2003,2004]'和'end_list = [2009,20010,20011,20012,2013]',您可以使用兩個過濾器:'.filter('start_production_year IN', start_list).filter('end_production_year IN',end_list)' – Lipis 2013-02-19 15:10:33
@neurino我不知道你是否可以找到更好的..因爲你不允許在同一個過濾器中使用兩個不相等的操作符.. – Lipis 2013-02-19 15:11:50