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

Django视图中合并多模型查询结果后按created_at排序方法

按日期字段排序字典列表的解决方案

嘿,这个需求很好解决,用Python内置的sorted()函数就能轻松搞定!你已经把不同模型的数据合并成字典列表了,接下来只需要指定排序依据为created_at字段就行。

方法一:使用lambda表达式(直观易读)

直接给sorted()函数传入key参数,用lambda提取每个字典里的created_at值作为排序依据:

# 假设你的合并后列表叫 merged_data
sorted_data = sorted(merged_data, key=lambda item: item['created_at'])

如果想要降序排序(最新的内容排在前面),只需要加上reverse=True参数:

sorted_data = sorted(merged_data, key=lambda item: item['created_at'], reverse=True)

方法二:使用operator.itemgetter(性能更优)

如果你的数据量比较大,用operator模块里的itemgetter会比lambda稍微高效一点,先导入模块再使用:

from operator import itemgetter

sorted_data = sorted(merged_data, key=itemgetter('created_at'))
# 降序排序同样加reverse=True
sorted_data = sorted(merged_data, key=itemgetter('created_at'), reverse=True)

额外小提示

如果你的几个模型结构比较相似,其实可以考虑在Django数据库查询阶段就用union合并查询集,然后直接用.order_by('created_at')或者.order_by('-created_at')排序——数据库层面处理会更高效。不过既然你已经完成了字典列表的合并,上面的方法完全能满足需求~

内容的提问来源于stack exchange,提问作者R.J. Jackson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:51:46