Django order_by,多个字段和优先级排序

8
我想根据两个因素对QuerySet进行排序。A和B,但它应该优先考虑A。也就是说,它应该按A排序,但如果两个对象的A相等,则应该按因素B对这两个对象进行排序。
例如,如果因素A是time_to_event,因素B是price。那么它应该列出所有具有最小time_to_event的对象,但如果两个或多个对象的time_to_event相同,则应按其价格排序。
我没有代码示例,因为我没有尝试过任何内容,尽管我尝试了谷歌,但没有令人满意的结果。

可能是如何在Django中按字段排序的重复问题。 - Oh Great One
重复。https://stackoverflow.com/q/51481897/4954874 - Oh Great One
1个回答

17

模型管理器具有 order_by 方法,该方法接受一个字段列表以在查询时用于排序。例如:

Entry.objects.order_by('-pub_date', 'headline')

以上结果将按照 pub_date 降序排列,然后按 headline 升序排列。 "-pub_date" 前面的负号表示降序。

https://docs.djangoproject.com/en/2.0/ref/models/querysets/#order-by


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接