gpt4 book ai didi

python - SQL Alchemy 中的自定义集合

转载 作者:太空宇宙 更新时间:2023-11-03 17:35:02 25 4
gpt4 key购买 nike

我将 SQL Alchemy 的声明式风格与 PostgreSQL 数据库结合使用。我有一个管理 Claim 对象的 ClaimAccount 。像这样的东西:

class Claim(MyBase):
manager_id = Column(UUID, ForeignKey(ClaimAccount.id))
manager = relationship(ClaimAccount, backref='claims')
created = Column(DATE)

现在,如果 aClaimAccount,则 a.claimsClaim 的列表。很好,但我希望它按 created 列排序,因为我总是希望按从最旧的顺序遍历 .claims到最新的。当然,我可以用 Python 对其进行排序,但如果 Postgres 为我做到这一点,可能会更好(更清晰、更快、更干燥、更方便)。

起初我认为答案是在与某些 PriorityQueue 或 SortedList 或其他什么的关系上设置 collection_class ,但现在我认为它只会影响声明如何填充到 Python 数据结构中,不是如何从数据库中获取它们。另外,文档说“在大多数情况下,您不需要自定义集合实现”(但是,其中提到的案例似乎不包括我的案例)。

您对如何最好地做到这一点有什么建议吗?

最佳答案

您可以为关系指定 order_by 参数。因为该顺序适用于 backref,所以您可以这样做:

manager = relationship(ClaimAccount, backref=backref('claims', order_by=Claims.created.desc()))

另请参阅Ordering List extension .

关于python - SQL Alchemy 中的自定义集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com