'SQLAlchemy - adding OR condition with different filter

For the SQL statement, I want to do an OR filter only if the input variable is not None.

E.g

# input variable
var_1 = "apple"
var_2 = "pear"

query = session.query(Table)
if var_1:
    query = query.filter(or_(Table.field1 == var_1))
if var_2:
    query = query.filter(or_(Table.field2 == var_2))

But this is not possible. The 2nd query became an AND statement instead.

I don't want to do this because I don't want to compare an input variable if it's null or empty string.

query = query.filter(or_(Table.field1 == var_1, Table.field2 == var_2))

How do I solve this?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source