如何在对象过滤器中正确使用日期

时间:2019-04-03 05:54:15

标签: django python-3.x django-models

我正在使用Django ORM访问数据库模型,当我使用objects.all()时,它运行良好,它返回数据库中的所有对象。但是,当我想按日期进行过滤时,我使用新的日期类型添加了过滤器,但它不返回任何内容,但我得到了一个空白的QuerySet。经过数小时的搜索和尝试不同的事情后,我发现object.filter(date__gte=date)有用。

例如:

这行得通,我得到了date =今天的所有记录:

today = date.today()
Model.objects.filter(date__gte=today)

这些无效,它们返回空的QuerySet:

Model.objects.filter(date__contains=today)
Model.objects.filter(date__startswith=today)
Model.objects.filter(date__date=date.today())

我的问题是,当一种类型的查询都应返回相同的数据时,我却做错了什么呢?

1 个答案:

答案 0 :(得分:0)

您可以为 DateTimeField 这样的操作{Reference):

Model.objects.filter(date__date=datetime.today())

如果其为 DateField ,则只需执行以下操作:

Model.objects.filter(date=datetime.today())