1
我想做一個查詢,用戶可能會或可能不會選擇一個過濾器,但我不想創建2個索引(表)。AppEngine:查詢數據存儲的條件爲特定屬性的條件
value=self.request.get('filter')
if value:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').filter('filter_property =',value)
else:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2')
我可以訂購filter_property。這樣在最後一行:
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').order('filter_property')
這將是壞的,如果我可以或不可以過濾P1(property1)和P2(property2)。我想這樣做:
value = self.request.get('filter')
if value:
operator = '='
else:
operator = '!='
results=Entity.all().filter('p1 =','v1').filter('p2 =','v2').filter('filter_property '+operator,value).order('p4')
「.order( 'P4')」 將失敗BadArgumentError與操作數=!
我該怎麼辦?