SQLAlchemy проверяет другие объекты в прослушивателе before_update - PullRequest
0 голосов
/ 14 июля 2020

Мне интересно, есть ли способ получить конкретный объект c внутри метода, украшенного слушателем в Python SQLAlchemy:

def skip_actions_for_unchanged_object(mapper, connection, target):
"""
Only runs for model A
"""

current = < get object of class mapper.class_ with id == target.id somehow >
new = target.serialize()
#Will return changes in the 'new' based off of 'current':
diff = { k : new[k] for k, _ in set(new.items()) - set(current.items()) }
#if diff contains certain keys, do this, otherwise do that

Моя цель - запустить skip_actions_for_unchanged_object для некоторых моделей, и если некоторые поля были изменены в этой модели на основе различия, выполните дополнительные действия на основе этого. Может быть, есть другой способ сделать это, но я не могу понять, как получить «текущий» объект базы данных (например, целевые значения, которые были перед обновлением)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...