2013-07-23 86 views
2
class User(Base): 
    __tablename__ = 'users' 

    addresses = relationship('Address', order_by='Address.id', backref='user') 


class Address(Base): 
    __tablename__ = 'addresses' 

    user_id = Column(Integer, ForeignKey('users.id')) 

上面的代碼顯示了SQLAlchemy中非常常見的一對多配置。如何在sqlalchemy中獲取backref名稱?

如何從類的Address實例中獲取backref名稱,該名稱是'user'?我如何知道在User類中有一個名爲'地址'的屬性,這表示User有很多地址?

我可以從__table__.columns屬性中獲取所有列信息,但看起來好像這些也存儲在那裏。

回答

3

我們試圖鼓勵使用inspect() API新的在0.8:

>>> from sqlalchemy import inspect 
>>> inspect(User).attrs.keys() 
['addresses', 'id'] 
>>> User.addresses.property.backref 
'user' 
+0

感謝,我使用的0.8,這是真正的幫助 – castiel

相關問題