【发布时间】:2011-12-31 06:52:22
【问题描述】:
我在 django-admin 中有一个过滤器,它显示“日期从”和“日期到”过滤器字段。问题是在“received_date”上过滤的字段是 DateTime 字段,而过滤器字段以以下格式显示日期“2011-10-01” - 这是预期的行为,过滤器应按日期列出所有项目不管时间。但是目前它不会列出任何结果,因为缺少时间。如何在不指定日期时间的情况下使过滤器工作?
【问题讨论】:
标签: django django-admin
我在 django-admin 中有一个过滤器,它显示“日期从”和“日期到”过滤器字段。问题是在“received_date”上过滤的字段是 DateTime 字段,而过滤器字段以以下格式显示日期“2011-10-01” - 这是预期的行为,过滤器应按日期列出所有项目不管时间。但是目前它不会列出任何结果,因为缺少时间。如何在不指定日期时间的情况下使过滤器工作?
【问题讨论】:
标签: django django-admin
只需从给定的日期构造一个新的日期时间,并将其用于过滤查询集。对于“来自”(大于或等于)过滤器,将时间硬编码到午夜。对于“to”(小于或等于)过滤器,将时间硬编码为午夜前一秒:
from datetime import datetime
dt_from = datetime(d_from.year, d_from.month, d_from.day, 0, 0, 0)
dt_to = datetime(d_to.year, d_to.month, d_to.day, 23, 59, 59)
(如果您担心毫秒,请将 dt_设置为“第二天的午夜”并进行“小于”过滤。)
【讨论】: