我正在尝试使用or_的列表理解。我已经找到了一篇文章,展示了如何只检查一列,但我不确定如何使用列表同时检查两列。我试过这样的事情:
q = q.filter(or_((model.column.contains(word), model.column2.contains(word))for word in search))
这给了我一个糟糕的要求。关于如何使用列表同时搜索的任何建议都将不胜感激!
答案 0 :(得分:1)
根据我的理解,您需要将解包条件转换为or_()
的位置参数:
columns = [model.column, model.column2]
conditions = [column.contains(word) for word in search for column in columns]
q = q.filter(or_(*conditions))
假设您想要“或”包含每个单词和所有给定列。