我尝试按照以下日期过滤DateTimeField
import datetime
product_list.filter(added_on__contains=datetime.date(2014, 8, 8))
这会抛出警告
Warning at /specs/filter/
Incorrect datetime value: '%2014-08-08%' for column 'added_on' at row 1
这样做的正确方法是什么?
答案 0 :(得分:0)
好contains
适用于django模型的文本输入(字符串类型),因此在datetime字段中使用contains
会导致抛出错误。所以你必须像:
product_list.filter(added_on=datetime.datetime(2014, 8, 8, 16, 12, 30))
或类似product_list.filter(last_updated__gte=datetime.date(2014,7,8)).filter(last_updated__lte=datetime.date(2014,7,10))
答案 1 :(得分:0)
有很多方法可以让我想到这一点。
__range
过滤器获得创意,并使用从当天开始到当天结束的日期时间对象。gte
和lte
product_list.filter(added_on__year = 2014).filter(added_on__month = 8).filter(added_on__day = 8)
让django进行优化。