Python SQL炼金术:与孙子的关系

Python SQL炼金术:与孙子的关系,python,sqlalchemy,relationship,Python,Sqlalchemy,Relationship,我正在用三个不同级别的对象构建一个SQL Alchemy结构;例如,考虑一个简单的数据库来存储一些博客的信息:有一些博客< /C>对象,一些 POST 对象和一些评论< /Cord>对象。每个帖子都属于博客,每个评论都属于帖子。使用backref我可以自动获得属于Blog的所有Posts的列表,类似地,也可以获得Comments的列表 我起草了一份报告 我现在想做的是直接在Blog中拥有属于该Blog的所有评论的数组。我尝试过几种方法,但它们都不起作用,甚至让SQL炼金术以我无法修复的方式哭泣。

我正在用三个不同级别的对象构建一个SQL Alchemy结构;例如,考虑一个简单的数据库来存储一些博客的信息:有一些<代码>博客< /C>对象,一些<代码> POST <代码>对象和一些<代码>评论< /Cord>对象。每个
帖子
都属于
博客
,每个
评论
都属于
帖子
。使用
backref
我可以自动获得属于
Blog
的所有
Post
s的列表,类似地,也可以获得
Comment
s的列表

我起草了一份报告

我现在想做的是直接在
Blog
中拥有属于该
Blog
的所有
评论的数组。我尝试过几种方法,但它们都不起作用,甚至让SQL炼金术以我无法修复的方式哭泣。我想我的经常需要,但我找不到任何有用的东西

有人建议我怎么做吗

谢谢。

您需要使用:

我想你可以用


在SQL中从未听说过这种关系。您可能需要自己在内部执行循环,或者在博客实现中执行显式连接操作……谢谢,但我想我正在搜索不同的内容:我想直接添加
注释作为类blog的字段,以便以与backref
任务
相同的方式访问它。换句话说,我不需要执行查询的行,但我希望将类的某个字段绑定到每次访问该字段时执行的查询(一般来说,
relatioship
does)。我知道,但有个错误我不明白。比较第46行和第77行。我没有尝试,因为我需要更多,但从文档来看,显然关联代理应该是一种方式。谢谢
comments = session.query(Comment).join(Post).filter(Post.blog == b1).all()
class Blog(Base):

    comments = association_proxy('posts', 'comments')