python
Apply condition based multiple filters in SQLAlchemy query
To apply multiple filters in SQLAlchemy queries which are condition-based you can use ** before queries object and pass it to the filter method.
all_filters = [UserModal.role == 'admin']
if user.last_name:
all_filters.append(UserModal.last_name == 'Deo')
db.session.query(
UserModal.username
).filter(
**all_filters
).all()
In the code snippet, we are applying two filters on UserModel. First filter [UserModal.role == 'admin'] will be applied every time. But the second filter 'UserModal.last_name == 'Deo' will be applied if it will satisfy the condition user.last_name.
Was this helpful?
Similar Posts