2011-12-30 86 views
0

我在django-admin中有一个筛选器,显示“date from”和“date to”筛选器字段。问题是,在“received_date”上过滤的字段是DateTime字段,而过滤器字段按以下格式“2011-10-01”显示日期 - 这是预期的行为,过滤器应按日期列出所有项目无论何时。但目前它不会列出任何结果,因为时间不见了。我怎样才能让过滤器工作而不指定日期的时间?Django使用DateTime字段的Datefield筛选器

回答

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“次日午夜”,并做了一个“少“过滤器。)

+0

...你可以通过添加24h timedelta来获得”第二天“,无需担心该月的最后一天。 – 2011-12-30 22:59:52