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

Django模板展示数据库内容如何按updated_at日期字段排序

实现方法

Python 的 list.sort() 方法原生支持时间类型的排序,逻辑和整数排序完全一致,你只需要调整排序key的取值即可,分两种常见场景处理:

场景1:接口返回的 updated_at 为ISO标准时间字符串/时间戳(绝大多数情况)

ISO格式的时间字符串(比如 2024-06-15T14:30:00Z)的字典序和时间先后顺序完全匹配,直接取值作为排序key即可,无需额外转换:

# 修改排序规则函数,取updated_at字段
def take_updated_at(elem):
    return elem['flow_phase']['updated_at']

def phase_details(request, batch_pk):
    ph_details_url = API_HOST + "/api/phase_details_full/?batch=" + str(batch_pk)
    answer = requests.get(ph_details_url).json()

    ph_details = answer['results']

    # 按updated_at升序排序(旧更新的在前,新更新的在后)
    ph_details.sort(key=take_updated_at)
    # 如果需要最新更新的排在最前面,用下面的写法加reverse参数
    # ph_details.sort(key=take_updated_at, reverse=True)

    rendered_page = render(request, 'batches_phases/consumer/phase_details.html', {'ph_details': ph_details})
    return rendered_page

场景2:接口返回非标准格式的时间字符串

如果时间格式不是ISO标准(比如 2024-06-15 14:30:00),可以先解析为datetime类型再排序:

# 导入datetime模块
from datetime import datetime

# 修改排序规则函数,先解析时间再返回
def take_updated_at(elem):
    # 第二个参数的格式要和你接口返回的时间字符串格式完全匹配
    return datetime.strptime(elem['flow_phase']['updated_at'], "%Y-%m-%d %H:%M:%S")

# sort调用方式和场景1完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:36:06