Как я могу получить предыдущее состояние объекта SQLAlchemy ORM после обновления БД?

Проблема в том, что я не могу понять, как использовать SQLAlchemy, чтобы уведомить меня, когда объект переходит в новое состояние.

Я использую SQLAlchemy ORM (декларативный) для обновления объекта:

class Customer(declarative_base()):

    __table_name__ = "customer"

    id = Column(Integer, primary_key=True)
    status = Column(String)

Я хочу знать, когда объект входит в состояние. Особенно после выпуска ОБНОВЛЕНИЯ и изменения состояния. Например.Customer.status == 'registered' и раньше у него было другое состояние.

В настоящее время я делаю это с'set' атрибут события:

from sqlalchemy import event
from model import Customer

def on_set_attribute(target, value, oldvalue, initiator):
    print target.status
    print value
    print oldvalue

event.listen(
        Customer.status,
        'set',
        on_set_attribute,
        propagate=True,
        active_history=True)

Мой код срабатывает каждый раз, когда вызывается 'set' для этого атрибута, и я проверяю,value иoldvalue разные. Проблема в том, чтоtarget Параметр сформирован не полностью, поэтому еще не заполнены все значения атрибутов.

Есть лучший способ сделать это? Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос