我有以下 ORM 类:
class Video(Base):
...
public_tag_entries = relationship("VideoTagEntry")
tags = association_proxy("public_tag_entries", "value")
此外,我在 append 上关联了一个事件:
def video_tag_added(target, value, initiator):
print "tag added"
event.listen(Video.public_tag_entries, 'append', video_tag_added)
当我附加到 public_tag_entries 时,会发出事件
video.public_tag_entries.append(VideoTagEntry(value = "foo"))
但是,当我添加使用时:
video.tags.append("foo")
没有发出事件。
我试图在 video.tags 关联代理上注册一个事件,但这似乎不起作用。
问题:这是预期和正确的行为,还是这是一个错误?是否有解决方法,或者我只是做错了什么。
我希望关联代理触发底层属性的 orm 事件。
谢谢, 杰科