0

我正在使用 Eve 和 sqlalchemy 分支来开发 REST API。

我想在将请求发送到数据库之前向 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 ......

4

1 回答 1

1

我知道这是一个老问题。eve-sqlalchemy 现在是具有独立生命周期/代码库的扩展。

当前的代码库似乎在这里or处理条件

现在可能有效吗?


更新(2016 年 2 月 6 日)

我对此进行了测试。以下语法有效:

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

注意or_而不是$or您的预期。

于 2015-07-31T06:57:00.007 回答