如何防止`before_update`事件在SQLAchemy中删除时被触发?

时间:2017-01-17 02:18:32

标签: python sqlalchemy

我有一个SQLAlchemy模型的特殊验证器:

class MyModel(db.Model):
    id = Column(Integer, primary_key=True)
    name = Column(Unicode(length=16), default=u'')
    is_active = Column(Boolean, default=False)

@listens_for(MyModel, 'before_update')
def complex_constraint(mapper, connection, target):
     # checks uniqueness of an instance using complex rule
     ....

当我尝试删除MyModel的实例时,由于某种原因,SQLAlchemy调用before_update处理程序:

MyModel.query.filter(MyModel.name=='Dave').delete()

所以我的问题:

  1. 为什么SQLAlchemy在我尝试删除时调用before_update处理程序 实例
  2. 如何防止此行为或解决方法呢?好点 解决方案比临时关闭事件处理 模型?

0 个答案:

没有答案