2014-12-04 23 views
0

我使用Eve與sqlalchemy分支來開發一個REST API。添加一個過濾器或使用sqlalchemy在前夕pre_GET掛鉤

我想在請求發送到數據庫之前添加一個過濾器到GET請求,但是我發現沒有辦法做到這一點。

我想要做的基本上是這樣的:

from sqlalchemy import or_ 

def pre_GET(resource, request, lookup): 
    lookup.append(_or('field1'==1, 'field2'==2)) 

當然,這是不行的,因爲查找是一本字典。然而,搜索前夕的源代碼,我看不出有可能實現一個OR。查找變量與此文件parse_dictionary()解析:https://github.com/nicolaiarocci/eve/blob/sqlalchemy/eve/io/sql/parser.py

相應的方式使用MongoDB的是這個時候:

lookup['$or'] = [{'field1': 1}, {'field2': 2}] 

然而,這僅適用於MongoDB的...

回答

1

我明白這是一個老問題。 eve-sqlalchemy現在是一個具有獨立生命週期/代碼庫的擴展。

當前代碼庫似乎處理or條件here

可能是現在的工作?


更新(2016年2月6日)

我測試了這一點。語法如下工作:

lookup['or_'] = [{'field1': 1}, {'field2': 2}] 

通知or_代替$or你的預期。

+0

是的,它已被修補。當時我想出了一個解決方案,但我很欣賞你的答案。 – Leonidaz0r 2016-11-01 08:52:34

相關問題