Есть несколько способов сделать это:
Использование фильтра (и оператора)
query = meta.Session.query(User).filter(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
Используя filter_by (и оператора)
query = meta.Session.query(User).filter_by(
firstname.like(search_var1),
lastname.like(search_var2)
)
-цепочки фильтра (и оператора)
query = meta.Session.query(User).\
filter_by(firstname.like(search_var1)).\
filter_by(lastname.like(search_var2))
Использование or_() или and_(), а не()
from sqlalchemy import and_, or_, not_
query = meta.Session.query(User).filter(
and_(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
)
Я думал, что этот вопрос соответствует моей проблеме, но ответы не применяются к моему конкретному сценарию. Если firstname является «joe», а lastname - «smith», я ищу оператор фильтра, который будет соответствовать, когда предоставленный searchVar является «joe smith». I.e, перед проведением теста поля должны быть объединены (с добавленным пространством). Это похоже на очень реальный сценарий. – Groovee60
@ Groovee60 Это именно то, что я ищу. Буду признателен, если вы сможете поделиться своим решением, если найдете его. – Lilylakshi