0

sqlalchemy ブランチで Eve を使用して 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 に答える