带有多个参数的SQLAlchemy"或"语句

Blu*_*sky 4 python sqlalchemy

我有一个需要使用"或" |运算符的查询:

Mymodel.query.filter((Mymodel.a== 'b') | (Mymodel.b == 'c'))
Run Code Online (Sandbox Code Playgroud)

这很好.但是,我希望我的条件放在一个未知长度的数组中:

conds = [ Mymodel.a== 'b', Mymodel.b == 'c', Mymodel.c == 'd']
Mymodel.query.filter(???(conds))
Run Code Online (Sandbox Code Playgroud)

谢谢 !

Alf*_*ssi 8

你在找or_

conds = [ Mymodel.a== 'b', Mymodel.b == 'c', Mymodel.c == 'd']
Run Code Online (Sandbox Code Playgroud)

如果您有以上条件列表,只需将它们全部传递给or_

from sqlalchemy import or_
Mymodel.query.filter(or_(*conds))
Run Code Online (Sandbox Code Playgroud)