Python 如何防止在SQLAchemy中删除时触发'before_update'事件?
我为SQLAlchemy模型提供了一个特殊的验证器:Python 如何防止在SQLAchemy中删除时触发'before_update'事件?,python,sqlalchemy,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_const
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在更新之前调用
处理程序:
MyModel.query.filter(MyModel.name=='Dave').delete()
所以我的问题是:
您还应该发布
MyModel
类。poosibly related@RedBaron添加了模型示例。没什么特别的。没有树结构。过滤器(MyModel.name=='Dave')
,请注意==
。我猜=
意味着分配,所以实例被标记为脏实例,并触发更新。@RedBaron抱歉。我的错误是格式化了一个示例。通过==
我看到了同样的效果。