【发布时间】:2014-01-18 16:36:40
【问题描述】:
我需要获取一个模型属性列表,这些属性实际上是关系(也就是说,它们是由relationship() 创建的)。
假设我在models 中有一个模型Foo:
class Thing(db.Model):
id = db.Column(...)
bar_id = db.Column(...)
foo_id = db.Column(...)
foo = db.relationship('Foo')
bar = db.relationship('Bar')
稍后,我想获取models.Thing 并获取关系属性列表,即['foo', 'bar']。
目前,我正在检查dir(models.Thing) 指示的每个属性,这些属性恰好是sqlalchemy.orm.attributes.InstrumentedAttribute 类型的property 属性类——可以是ColumnProperty 或RelationshipProperty。这可以完成工作,但我想知道是否还有其他方法。
我可能只找到所有以 _id 结尾的属性并派生关系名称,但在某些情况下这可能会中断。
设置一个__relationships__ = ['foo', 'bar']怎么样?
或者 SQLAlchemy 中是否有内置的东西可以帮助我?
【问题讨论】:
标签: python sqlalchemy