Django - 仅包含日期部分的分组

2023-11-26

MyModel.objects.filter(created_at__gte='2011-03-09', created_at__lte='2011-03-11').values('created_at','status').annotate(status_count=Count('status'))

上述查询有问题created_at日期时间字段。是否可以调整上述查询以在执行分组依据时忽略时间值并单独使用日期值?


我不确定 Django 的 ORM 是否可以在查询过程中执行日期时间到日期的转换。不过,您可以先执行查询,获取结果,然后使用 Pythongroupby()函数对返回的行进行排序。以下是按日期对日期时间进行分组的小示例:

from pprint import pprint
from datetime import datetime
from itertools import groupby

rows = [('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() with a key函数,它采用正在分组的对象之一并提取分组应遵循的值 - 在本例中,它使用以下命令获取每行中的第二项[1]然后调用Pythondatetime method date()在其上提取日期部分,不含小时和分钟。脚本的输出如下所示(pprint()function 只是一个奇特的“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))]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 仅包含日期部分的分组 的相关文章

随机推荐

  • 如何在Android中设置进度条的最大值[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想设置 a 的最大值Pr
  • GDB 中的格式化打印

    我想做printf风格印刷来自GDB 例如 我想打印一个变量值 但用一些文本来描述它是什么 可以吗 如果可以的话 能举个例子吗 你可以非常多地使用printf in gdb如下 gdb printf s x Hello world gdb
  • Laravel 样式表和 javascript 不会加载非基本路由

    好吧 我知道这是一个非常基本的问题 但我无法弄清楚 这是一个关于 Laravel 的问题 基本上 我将样式表嵌入到我的默认布局视图中 我目前只是使用常规 css 来链接它们 例如 当我处于单级路线时 例如 about 但是当我深入时停止工作
  • 类 C 语言中的返回类型多态性

    为什么我们没有看到类似 C 的语言允许在返回类型中具有多态性的可调用对象 我可以看到附加类型推断将成为一个障碍 但我们有很多语言具有成熟的类型推理系统 适用于不同级别的 工作 Edit 通过返回类型多态性 我的意思是仅在返回类型中重载函数签
  • 使用 TextDecoder/TextEncoder 将 ArrayBuffer 转换为 String,然后返回 ArrayBuffer,返回不同的结果

    我有一个 ArrayBuffer 它是通过使用 Frida 读取内存而返回的 我将 ArrayBuffer 转换为字符串 然后使用 TextDecoder 和 TextEncoder 返回 ArrayBuffer 但结果在此过程中发生了变化
  • Java 中保存连接字符串参数的配置文件

    我有 ASP Net 背景 我现在正在编写一个Java 程序 将数据从DB2 数据库导入到Oracle 数据库中 我已经完成了导入此数据的基本功能 我遇到的问题是 我将所有连接属性都编码到了 Java 程序本身中 是否有任何 最佳实践 方法
  • CSS:如何使光标成为输入文件上的指针?

    当鼠标悬停时 如何使光标成为输入文件或输入文本上的指针 我尝试过 但当然行不通
  • password_hash 的盐存储在哪里?

    根据 相对 新的 PHP 文档 The 密码哈希值函数使用随机盐 我们不应该担心 O O 所以如果我理解正确 盐必须存储在某个地方 否则用户在注册网站后将无法登录 不同的盐 gt 不同的哈希值 该函数文档没有告诉任何有关与数据库交互的信息
  • 是否有基于其他运算符自动提供的 C++ 运算符重载? [复制]

    这个问题在这里已经有答案了 假设我正在写一个int包装器并需要提供每个操作符重载 作者是否必须列出每一项 还是可以根据作者提供的内容自动生成任何一项 编译器是否可以从现有的运算符中推断出任何新的自动定义运算符 如果我定义operator 它
  • 在 iOS 7 中强制横向和自动旋转

    我的应用程序应该只是横向的 在构建时我没有遇到任何问题iOS 6和更早的时候 现在与iOS 7 它根本不会旋转 在我的应用程序设置中 我将其设置为仅横向左 右 在我的视图控制器中 我使用以下内容 NSUInteger supportedIn
  • 如何在 web.config 文件中更改我的 asp.net 网站的默认时区

    我正在尝试更改我的 asp net 网站的默认时区 我尝试了以下代码 但它不起作用
  • 如何为 List 实现 Parcelable

    我正在尝试在我的可打包中传递一个列表 public class MetaDados implements Parcelable private List
  • 哈希表与 C++ 中的 STL 映射

    我正在尝试学习 C 地图 只是想知道STL图的实现 我读到它采用了二叉搜索树 STL中有哈希表的实现吗 STL映射到底是如何存储键值对的 典型的 STL 实现基于红黑树 C TR1 提供了 std tr1 unordered map 它使用
  • 如何在 JMeter 中进行 OAuth 2.0 身份验证?

    我正在尝试对一些需要身份验证的 API OAuth 2 0 进行功能测试 并在 JMeter 中进行模拟 我正在尝试验证 Azure 云的 OAuth 服务 有没有人能够成功创建 JMeter HTTP 请求来针对 OAuth 2 0 进行
  • 在文本选择上显示自定义菜单

    您好 我希望能够在用户选择一些与媒体提供的文本非常相似的文本时显示自定义菜单 或上下文菜单 如何实现这样的事情 我知道本机 jquery 上下文菜单插件 但我如何知道用户何时选择文本 浏览器的onselect似乎仅在输入元素上受支持 这是一
  • PHP 的合并函数?

    许多编程语言都有合并函数 返回第一个非 NULL 值 example 遗憾的是 2009 年 PHP 还没有做到这一点 在 PHP 本身获得合并函数之前 在 PHP 中实现一个合并函数的好方法是什么 php 5 3 中有一个新的运算符可以执
  • 如何在 cmd start 中使用引号?

    这是我想做的事 start wait c Program Files NetDrive2 nd2cmd exe c m t ftp blabla If I do start wait c Program Files NetDrive2 nd
  • 如何在 Anaconda Env 中启动 Visual Studio Code

    我在 Windows 10 PC 上的 Visual Studio Code 中运行 Python 程序时遇到问题 当我从终端启动 python 会话并说import cv2我没有收到任何错误 当我通过命令提示符并启动时VSCode从环境中
  • 为什么 UI 元素必须始终从 UI 线程创建/更新?

    为什么 UI 元素必须始终从 UI 线程创建 更新 在 几乎 所有编程语言中 UI 元素只能从 UI 线程安全地访问 修改 我知道这是一个标准的并发访问和同步问题 但真的有必要吗 这种行为是由编程语言还是操作系统强加的 有没有什么编程语言可
  • Django - 仅包含日期部分的分组

    MyModel objects filter created at gte 2011 03 09 created at lte 2011 03 11 values created at status annotate status coun