python - 我将如何查询使用 sqlalchemy 从邻接列表中检索所有对象?

标签 python sqlalchemy

class Node(Base):
    __tablename__ = 'node'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('node.id'))
    data = Column(String(50))
    children = relationship("Node",
                backref=backref('parent', remote_side=[id])
            )

使用这种类型的模型时,如何查询父对象的所有链接对象?

换句话说,我需要一个列表,其中包含所有的 child 和 child 的 child ,以及 child 的 child ......

最佳答案

这就是我最终所做的,可能不是最好的,但它奏效了。

pks = []

def get_pk(o):
    pks.append(o.pk)
    for a in o.attachments:
        get_pk(a)

get_pk(parent)

关于python - 我将如何查询使用 sqlalchemy 从邻接列表中检索所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58273238/

相关文章:

python - 使用预先定义的自定义函数覆盖函数内的函数

python - 具有多个对象层次结构的 SQLalchemy

python - 如何在 sqlalchemy 关系中使用日期(时间)算法?

python - DataFrame 每隔第三行并向前填充

python - 使用 matplotlib 在同一图表上绘制 pandas 数据帧中的线条和条形图

python - 如何使用 astype() 更改数据框中单列的数据类型?

python - Django + SQLite 如何在发生 "database is locked"错误时增加 SQLite 超时

python - 使用 Python 和 SQLAlchemy 从 Google Cloud Function 连接到 Cloud SQL

Python QuerySelectField 和 request.form 返回字典键,而不是字典值

python - SQLAlchemy "WITH ORDINALITY"