【发布时间】:2019-07-27 18:11:19
【问题描述】:
原来的问题 我在我们的项目中使用sqlalchemy。我像这样为我的模型注册了几个事件监听器。
@event.listens_for(Post, 'after_update')
@event.listens_for(Post, 'after_insert')
我在代码的其他地方更新了模型的view_counter 属性。
post.view_counter += 1
DBSession.flush()
现在,由于 view_counter 不是我认为的内容更新,我想在 sqlalchemy 中禁止针对此特定更新触发 after_update 事件。有没有办法通过 ORM 做到这一点,或者是完全绕过 ORM 进行原始 SQL 更新的唯一方法?
编辑
经过一番摸索,我意识到还有另一个问题,该属性是由Postgresql 自己设置的
date_last_updated = Column(SA_DateTime, default=DateTime.now, onupdate=DateTime.now, nullable=False, index=True)
问题
所以问题是,如何在不触发 Postgresql 更新的情况下更新 sqlalchemy 模型。
【问题讨论】:
标签: python postgresql sqlalchemy