фильтрация объектов django по дате

#django

#django

Вопрос:

в последнее время я столкнулся с этой ситуацией в Django и не могу четко понять, почему существует разница между этими 2 видами запросов, кто-нибудь может помочь мне понять это, спасибо

 >>> 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:

Первый запрос даст вам результаты, превышающие 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 и так далее