Хорошо, нашли ответ \ ☺ / Вы можете повторно выполнить оператор select, который использовался для выбора строк для массового удаления.К сожалению, вы не можете запросить объекты ORM, но вы можете получить список всех удаленных строк со старыми значениями столбцов в виде кортежей:
def after_bulk_delete(session, query, query_context, result):
affected_table = query_context.statement.froms[0]
affected_rows = query_context.statement.execute().fetchall()
sqlalchemy.event.listen(Session, "after_bulk_delete", after_bulk_delete)