我有一个模特:
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查询进行相等比较?
您可以通过使用查询集约束(Q对象)尝试相等操作”>
lte