Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQL Alchemy中的自定义集合_Python_Sorting_Sqlalchemy - Fatal编程技术网

Python SQL Alchemy中的自定义集合

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

我在PostgreSQL数据库中使用SQL炼金术的声明性风格。我有一个管理
索赔
对象的
索赔账户。比如:

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。见相关问题: