Django __date无法使用date()或字符串

时间:2018-11-15 14:17:53

标签: django datetime

我有以下模型字段:

inbound_date = models.DateTimeField()

我想过滤日期,而不在乎时间。 我插入了两个测试对象,它们为inbound_date返回以下值:

2018-11-14 00:00:00+00:00
2018-11-15 08:37:09+00:00

但是我所有检索对象的尝试都失败了:

AppInbound.objects.filter(inbound_date__date=datetime.date(2018, 11, 15))

AppInbound.objects.filter(inbound_date__date='2018-11-15')

但是所有人似乎都返回一个空的QuerySet。 我唯一设法上班的是:

AppInbound.objects.filter(inbound_date__startswith='2018-11-15')

返回最后一个对象,其日期时间为2018-11-15 08:37:09 + 00:00。

有人可以解释这里出了什么问题吗?

这是一个MySQL数据库,我们启用了TZ。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样:

 AppInbound.objects.filter(inbound_date__lt=datetime.date(2018, 11, 15), inbound_date__gte=datetime.date(2018, 11, 14))  # will return objects for 14th November.

或者您可以选中this answer on how to filter on specific dates

如果仅考虑日期的使用,则应在此处使用DateField

inbound_date = models.DateField()

然后,您应该可以使用日期对象(datetime.date)进行过滤。