Il y a plusieurs façons de le faire:
Utiliser le filtre (et opérateur)
query = meta.Session.query(User).filter(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
L'utilisation filter_by (et opérateur)
query = meta.Session.query(User).filter_by(
firstname.like(search_var1),
lastname.like(search_var2)
)
filtre Chaînage (et opérateur)
query = meta.Session.query(User).\
filter_by(firstname.like(search_var1)).\
filter_by(lastname.like(search_var2))
En utilisant or_() ou et_() et non()
from sqlalchemy import and_, or_, not_
query = meta.Session.query(User).filter(
and_(
User.firstname.like(search_var1),
User.lastname.like(search_var2)
)
)
Je pensais que cette question correspond au problème que j'ai, mais les réponses ne s'appliquent pas à mon scénario particulier. Si le prénom est "joe" et le nom de famille est "smith", je suis à la recherche d'une instruction de filtre qui apparaîtra lorsque le searchVar fourni est "joe smith". C'est-à-dire que les champs doivent être concaténés (avec espace ajouté) avant que le test ne soit effectué. On dirait un scénario très réel. – Groovee60
@ Groovee60 C'est exactement ce que je recherche. J'apprécierais que vous puissiez partager votre solution, si vous en avez trouvé une. – Lilylakshi