假设以下型号。请注意自引用关系“parent”。
class Widget(object):
__tablename__ = 'widgets'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
parent_id = Column(Integer, ForeignKey('widgets.id'), nullable=True)
parent = relationship("Widget", remote_side=[id])
我正在尝试制定一个允许我按“parent.name”排序的查询。在查询上指定联接似乎对生成和执行的SQL没有任何影响。
到目前为止,我会更加具体地说明我所尝试过的事情,但问题是,我整天都在喋喋不休,并且已经用尽了可用的文档。
关于我应该尝试的任何WAG?
答案 0 :(得分:1)
查看SA docs for self-referencing structures - 特别是在自引用部分开始之前查看Node
的声明。
我不是这些分层设置的专家(他们可能会有点冒险),但看起来你已经建立了与文档中的示例相对的关系。这并不是说你做错了,而是说文档中的Node/Parent/Children
示例似乎映射到你想要做的事情。您应该能够以与Widget
示例相同的方式设置Node
,将parent
放入您的查询中,然后进行排序。