1
我必須使用事件偵聽器與關係模型的問題,我的模型類是一個自我引用的表:SQLAlchemy的事件偵聽器和關係問題
class Distributor(Base):
__tablename__ = "distributors"
id = Column(Integer, primary_key=True)
name = Column(String, nullable = False)
upline_id = Column(Integer, ForeignKey('distributors.id'))
upline = relationship('Distributor', remote_side=id, backref=backref('downlines'))
,我特林上註冊事件監聽器
def my_append_listener(target, value, initiator):
branch_develop = len(target.downlines)
這行::添加到收藏下線的
event.listen(Distributor.downlines, 'append', my_append_listener)
會給出一個埃羅R:AttributeError的:對象類型「分銷商」有沒有屬性「下線」
,但它是確定寫類似:
george = Distributor("george", None)
george.downlines = [Distributor("downlineUser")]
而且我還發現,如果我重寫關係到這一點:
downlines = relationship('Distributor', backref=backref('upline', remote_side=id))
一切都運行完美。有人能告訴我代碼中有什麼問題嗎?