from sqlalchemy import or_ from typing import List def apply_keyword_search(query, model, keyword: str, fields: List[str]): if not keyword: return query like = f"%{keyword}%" conditions = [ getattr(model, field).ilike(like) for field in fields ] return query.filter(or_(*conditions))