首页 > 解决方案 > 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
>>> 

标签: django

解决方案


第一个查询将为您提供大于 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等

推荐阅读