django对象根据日期进行过滤

时间:2020-10-20 05:35:37

标签: django

最近我在Django中遇到了这种情况,无法清楚地理解为什么这两种查询之间存在差异 有谁可以帮助我理解它,谢谢

>>> date
datetime.datetime(2020, 11, 1, 0, 0)
>>> Contract.objects.filter(deadline_on__gt=date).count()
220
>>> Contract.objects.filter(deadline_on__month__gt=10, deadline_on__year__gt=2019).count()
30
>>> 

1 个答案:

答案 0 :(得分:2)

第一个查询将为您提供结果 大于2020-11

  • 2020-12、2021-01、2021-02、2021-04、2021-04等

但是,第二个查询是一个棘手的查询, 它仅与第11和12个月以及大于2019的年份匹配

  • 2019-11、2019-12、2020-11、2020-12、2021-11、2021-12等