SqlAlchemy filter_by с kwargs, содержащими списки - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь построить оператор фильтра из kwargs, который может содержать списки в качестве значений:

def delete_object(self, from_table, filters, commit=True): 
    (self._session
         .query(from_table)
         .filter_by(**filters)
         .delete(synchronize_session=False))

filters содержит ключи, которые представляют столбцы в таблице и значения, которые должны быть отфильтрованы. Если значения не являются списками

{'id': 1, 'name': 'test'}

тогда все работает нормально. Тем не менее, когда значения являются списками

{'id': [3]}

тогда созданный результирующий оператор sql выглядит следующим образом

DELETE FROM <table> WHERE <table>.id = ARRAY[3]

Есть ли способ обработки элементов списка?

1 Ответ

0 голосов
/ 28 марта 2019

Похоже, что этот ответ может помочь:

Предложение SQLAlchemy IN

Подведение итогов, вы можете нас _in, вот так:

session.query(MyUserClass)
       .filter(MyUserClass.id.in_(SOME_LIST)).all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...