Ответ 1
Вы на правильном пути!
Первое, что вы хотите сделать, - это атрибуты доступа с помощью getattr
, а не __dict__
; getattr
всегда будет делать правильные вещи, даже если (как это может иметь место для более запутанных моделей) сопоставленный атрибут не является свойством столбца.
Другой недостающий элемент состоит в том, что вы можете указать filter()
более одного раза и просто заменить старый объект запроса результатом этого вызова метода. Итак, в основном:
q = session.query(myClass)
for attr, value in web_dict.items():
q = q.filter(getattr(myClass, attr).like("%%%s%%" % value))