栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django-仅按日期部分分组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django-仅按日期部分分组

我不确定Django的ORM是否可以在查询中间将日期时间转换为日期。但是,您可以先执行查询,获取结果,然后使用Python

groupby()
函数对返回的行进行排序。这是一个按日期对日期时间进行分组的小示例:

from pprint import pprintfrom datetime import datetimefrom itertools import groupbyrows = [('Frodo party', datetime(3018, 9, 22, 10, 38)),        ('Nazgul defeat Rangers', datetime(3018, 9, 22, 11, 57)),        ('Frodo finishes packing', datetime(3018, 9, 23, 10, 59)),        ('Gandalf tames Shadowfax', datetime(3018, 9, 23, 13, 11)),        ('Gandalf crosses the Isen', datetime(3018, 9, 24, 18, 46))]for key, values in groupby(rows, key=lambda row: row[1].date()):    print('-')    pprint(key)    pprint(list(values))

如您所见,您必须提供

groupby()
一个
key
函数,该函数接受要分组的对象之一,并提取应该进行分组的值–在这种情况下,它使用并抓取每行中的第二项
[1]
,然后调用它的Python
datetime
方法
date()
可提取日期部分,而不需要小时和分钟。脚本的输出看起来像这样(该
pprint()
函数只是一个花哨的“
print”语句,它使输出缩进,在您的Django代码中将不需要它!):

-datetime.date(3018, 9, 22)[('Frodo party', datetime.datetime(3018, 9, 22, 10, 38)), ('Nazgul defeat Rangers', datetime.datetime(3018, 9, 22, 11, 57))]-datetime.date(3018, 9, 23)[('Frodo finishes packing', datetime.datetime(3018, 9, 23, 10, 59)), ('Gandalf tames Shadowfax', datetime.datetime(3018, 9, 23, 13, 11))]-datetime.date(3018, 9, 24)[('Gandalf crosses the Isen', datetime.datetime(3018, 9, 24, 18, 46))]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号