让我们有3个表A,B,C以及它们之间的关系。
A与B有多对一
B是一对多的C
如何在sqlalchemy中编写关系以便从A访问C,例如:A.C [0] .some_column
答案 0 :(得分:3)
在你的例子中
A与B有多对一
B是一对多的C
最后
如果您想从A访问C,则A是多对多C是最后一个关系。
您必须在每个模型中创建relationship才能直接访问。
例如
A.x is relationship with B
B.y is relationship with C
然后您可以通过A.x.y访问,它将返回列表。
要像A.x那样访问,您可以使用secondaryjoin来提供查询,该查询将直接从A访问C.
例如
Class A:
p = relationship(C,
primaryjoin=A.x==B.y,
secondaryjoin=B.y==C.z
)
这可能适合你。