使用DateTime字段的Django Datefield过滤器

时间:2011-12-30 17:46:39

标签: django django-admin

我在django-admin中有一个过滤器,显示“date from”和“date to”过滤器字段。问题是在“received_date”上过滤的字段是DateTime字段,而过滤器字段以下列格式“2011-10-01”显示日期 - 这是预期的行为,过滤器应按日期列出所有项目不管时间。但是目前它不会列出任何结果,因为缺少时间。如何在不指定日期时间的情况下使过滤器工作?

1 个答案:

答案 0 :(得分:0)

只需从给定日期构造一个新的日期时间,并使用它来过滤Queryset。对于“从”(大于或等于)过滤器硬编码到午夜的时间。对于“到”(小于或等于)过滤器硬编码时间为午夜前的一秒钟:

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_to设为“次日午夜”并执行“小于”过滤器。)