当另一个属性无效时,对属性进行Nullify

时间:2016-06-22 19:54:24

标签: python sqlalchemy

我有一个带有三个指向同一个表的外键的模型。当其中一个外键设置为NULL时,我也想取消其他两个外键。

primary_id = Column(Integer, ForeignKey(table.id))
secondary_id = Column(Integer, ForeignKey(table.id))
tertiary_id = Column(Integer, ForeignKey(table.id))

我最初的想法是设置一个事件来监听set,但这将无限期地递归。

@event.listens_for(Model.primary_id, 'set')
@event.listens_for(Model.secondary_id, 'set')
@event.listens_for(Model.tertiary_id, 'set')
def example(target, value, old, initiator):
    target.primary_id = None
    target.secondary_id = None
    target.tertiary_id = None

如果我知道源是上面提供的example函数,是否有某种方法可以阻止事件传播?

0 个答案:

没有答案