首页 > 解决方案 > django __date 过滤器中的奇怪行为

问题描述

我正在尝试按日期过滤模型。

class Participant(models.Model):
    email = models.CharField(unique=True, max_length=255)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

有 4 个条目创建于date(2020, 3, 28)

2020-03-28 06:28:14.475307+00:00
2020-03-28 06:16:05.312023+00:00
2020-03-28 06:11:27.322146+00:00
2020-03-28 06:03:27.500164+00:00

当我这样做时:

Participant.objects.filter(created_at__gte=datetime.date(2020, 3, 28), created_at__lt=datetime.date(2020, 3, 29))

我收到了这 4 个条目。

但是,当我这样做时:

Participant.objects.filter(created_at__date=datetime.date(2020, 3, 28))

我得到一个空的查询集。

我有:

TIME_ZONE = "UTC"
USE_TZ = True

我在时区Asia/Kolkata 我正在使用 django 2.2 版、Mysql、python 3.6.7 版

我已经看到了这个答案:https ://stackoverflow.com/a/55608903/5157204但我无法弄清楚问题所在。谁能帮我找出问题所在?

标签: djangodatetime

解决方案


推荐阅读