2
我有兩個映射類有一個一對多的關係:SQLAlchemy的關係自省
class Part(...):
product = relationship('products', backref=backref('parts'))
class Product(...):
pass
鑑於Part.product
,我可以反思這種關係,即獲取屬性名稱,並同時獲得backref屬性名稱:
>>> rel = Part.product # image it's passed in as a function parameter
>>> rel.property.key
'product'
>>> rel.property.backref[0]
'parts'
我還可以訪問的關係倒過來:
>>> rel = Product.parts
>>> rel
<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x3744fd0>
>>> rel.property.key
'parts'
不過,我無法找出如何(在本例又名backref」 backref屬性,又名‘產品’)訪問原始屬性名稱:
>>> rel.property.backref is None
True
我在哪裏有發癢Product.parts
獲得'product'
?
真棒,正是我需要的:-)我甚至不認爲這是一個黑客,它看起來像規範的方法來查找屬性名稱(backref是設置back_populates的快捷方式)。謝謝你解決這個問題! – Simon