queries=[] queries.append(db.table.id>0) # this is the main query
if arg1 == "x": queries.append(db.table.field == x) if arg2 == "y": queries.append(db.table.otherfield == y) # many conditions here.... query = reduce(lambda a,b:(a&b),queries) db(query).select()