0

次のようなものが欲しいです:

q = db.session.query(db.models.Something).filter(a==a).filter(b==b).or().filter(c==c).filter(foo==bar)

これは、a=a と b=b または c=c と d=d を意味します。

これをフィルター呼び出し自体に適用することは避けたいと思います。

4

1 に答える 1

0

or_()関数とand_()関数を使用する必要があります。

from sqlalchemy.sql import or_, and_

q = db.session.query(db.models.Something).filter(
    or_(
        and_(a==a, b==b),
        and_(c==c, foo==bar)
    ))

&または、and|演算子を使用できます。

q = db.session.query(db.models.Something).filter(
    (a==a) & (b==b) | (c==c) & (foo==bar))

接続詞一般的なフィルター操作を参照してください。

于 2013-03-27T20:32:53.553 に答える