You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于两个字段对不同模型的QuerySet进行排序?

实现多字段联合排序的方案

你只需要修改sorted函数的key参数,返回一个包含两个排序字段的元组即可。Python的sorted函数会先按元组的第一个元素排序,当第一个元素相同时,自动按第二个元素排序,完全匹配你的需求。

修改后的代码如下:

lst_qs = list(qs_trades) + list(qs_deposits) + list(qs_withdrawals)
sorted_lst = sorted(lst_qs, key=lambda x: (x.datetime, x.dt_created))

补充说明

  • 如果需要倒序排序,可针对日期字段的时间戳加负号实现(日期类型支持此操作),比如先按datetime倒序,再按dt_created倒序:
    sorted_lst = sorted(lst_qs, key=lambda x: (-x.datetime.timestamp(), -x.dt_created.timestamp()))
    
    若使用reverse=True参数会对两个字段统一倒序,如需混合正倒序,优先用元组加负号的方式更灵活。
  • 确保所有模型的datetime和dt_created字段类型一致(均为datetime对象),避免排序时出现类型错误。

内容的提问来源于stack exchange,提问作者Florent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:05:35