为什么对两个DateTimeFields相等的Django查询不起作用?

问题描述 投票:0回答:1

我有一个模特:

class Host(models.Model):
    create_date = models.DateTimeField(auto_now_add=True)
    update_date = models.DateTimeField(auto_now=True)

我想过滤掉所有具有create_date.date()== update_date.date()的对象,所以我使用这个Django查询:

Host.objects.filter(create_date__date=F("update_date__date")).count()

假设,我的数据库确实有具有create_date.date()== update_date.date()的主机,因此我希望[C0

0的返回值;但是,结果为0。

同时,如果我使用此查询:

count()

我会得到预期的结果。

除此之外,我还有

Host.objects.filter(create_date__date__lt=F("update_date__date")).count()

从以上a = Host.objects.filter(create_date__date__lt=F("update_date__date")).count() b = Host.objects.filter(create_date__date__lte=F("update_date__date")).count() a == b # True 来看,我认为a==b # True中的e无效,这意味着在任何情况下我的两个日期都相同,但在我的情况下是这样。

问题

:为什么我不能对DateTimeField上的Django查询进行相等比较?
python django django-models
1个回答
0
投票

您可以通过使用查询集约束(Q对象)尝试相等操作”>

lte
© www.soinside.com 2019 - 2024. All rights reserved.