跟踪SQLAlchemy模型中的更改并获取json_body user_id

时间:2016-03-17 03:30:06

标签: python sqlalchemy pyramid

我在Tracking model changes in SQLAlchemy的帖子中使用了如下代码。我目前唯一的问题是我的地图通过令牌获取最终用户的用户名,我需要将该用户名信息传递给此功能,以便记录更改。有没有更好的方法,或者我只需要在我的表中添加一个名为last modified by的表,并在更新到表时使用此侦听器进行刮擦?

@event.listens_for(cls, 'before_update')
def before_udpate(mapper, connection, target):
    state = db.inspect(target)
    changes = {}

    for attr in state.attrs:
        hist = state.get_history(attr.key, True)

        if not hist.has_changes():
            continue

        # hist.deleted holds old value
        # hist.added holds new value
        changes[attr.key] = hist.added

        # now changes map keys to new values

或者是否有某种方式我可以从我的视图中调用此信息?

1 个答案:

答案 0 :(得分:1)

晚上睡觉之后。我想出了一个混音。与此页面上的内容类似:http://francesco.pischedda.info/posts/logging-model-changes-with-sqlalchemy-listeners.html

我传入了我的请求对象,以便我的目标对象拥有请求对象。