我有一个带有三个指向同一个表的外键的模型。当其中一个外键设置为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
函数,是否有某种方法可以阻止事件传播?