Django DateTimeField日期过滤器不起作用

时间:2017-12-21 05:10:54

标签: python mysql django

我的模型中有一个名为DateTimeField的{​​{1}}。我想查询今天创建的对象。从this question开始,我使用了以下查询集

created_at

返回零结果。我已确保数据库中存在一个今天创建的条目。我知道我也可以使用

In [70]: today = datetime.datetime.today().date()
In [72]: Business.objects.filter(created_at__date=today)
Out[72]: <QuerySet []>

但它会产生结果并发出警告:

Business.objects.filter(created_at__contains=today)

我正在使用MySQL数据库。我的模型是

django/db/backends/mysql/base.py:71: Warning: (1292, "Incorrect datetime value: '%2017-12-21%' for column 'created_at' at row 1")

2 个答案:

答案 0 :(得分:1)

from django.utils import timezone
Business.objects.filter(created_at__gte=timezone.now())

我想这对你来说会更好。

并更改您的模型

created_at = models.DateTimeField(auto_now=True)

然后makemigrations,迁移然后添加一些数据并再试一次

答案 1 :(得分:0)

使用时区库

today = timezone.datetime.today().date()

否则

today = timezone.now().date()