Python SQL Alchemy中的自定义集合
我在PostgreSQL数据库中使用SQL炼金术的声明性风格。我有一个管理Python SQL Alchemy中的自定义集合,python,sorting,sqlalchemy,Python,Sorting,Sqlalchemy,我在PostgreSQL数据库中使用SQL炼金术的声明性风格。我有一个管理索赔对象的索赔账户。比如: class Claim(MyBase): manager_id = Column(UUID, ForeignKey(ClaimAccount.id)) manager = relationship(ClaimAccount, backref='claims') created = Column(DATE) 现在,如果a是claimeraccount,那么a.claims
索赔
对象的索赔账户。比如:
class Claim(MyBase):
manager_id = Column(UUID, ForeignKey(ClaimAccount.id))
manager = relationship(ClaimAccount, backref='claims')
created = Column(DATE)
现在,如果a
是claimeraccount
,那么a.claims
是索赔
的列表。这很好,但我希望它按创建的列进行排序,因为我总是想按从最早到最新的顺序遍历。索赔。当然,我可以用Python对它进行排序,但如果Postgres为我这样做的话,可能会更好(更清晰、更快、更干燥、更方便)
起初我认为答案是在与PriorityQueue或SortedList等的关系上设置collection\u class
,但现在我认为这只会影响声明如何填充到Python数据结构中,而不会影响它们如何从数据库中获取。另外,文档中说“在大多数情况下,您不需要自定义集合实现”(不过,这里提到的案例似乎不包括我的)
关于如何最好地执行此操作,您有什么建议吗?您可以通过关系的参数指定顺序。因为订单适用于backref,所以可以这样做:
manager = relationship(ClaimAccount, backref=backref('claims', order_by=Claims.created.desc()))
另请参见。您可以按任何字段订购queryset。见相关问题: