Цепочка запросов django по датам работает не так, как ожидалось

У меня есть приложение Django 4.2 с моделью Album. В модели Album есть DateTimeField под названием date.

Я выполняю запрос, чтобы выбрать альбомы по году в дате запуска:

>>> launch_date = datetime(2014, 5, 10)
>>> albums = Album.objects.filter(date__year=launch_date.year)
>>> albums
<QuerySet [<Album: 732 - September 30, 2014>, <Album: 734 - February 6, 2009>, <Album: 735 - March 29, 2010>, <Album: 736 - April 5, 2010>, <Album: 738 - May 20, 2014>]>
>>> for a in albums:
        print(a.album_id, a.date.year, a.date.month)
732 2014 10
734 2014 10
735 2014 10
736 2014 10
738 2014 5

Именно этого я и ожидал.

Однако когда я запускаю этот запрос для дальнейшей фильтрации альбомов по месяцам, он терпит неудачу. Я ожидал, что запрос вернет один альбом с album_id = 738:

>>> albums.filter(date__month=launch_date.month)
<QuerySet []>

Эти цепочки фильтров также не дают ожидаемых результатов:

>>> Album.objects.filter(date__year=2014, date__month=5)
<QuerySet []>
>>> Album.objects.filter(date__year=launch_date.year).filter(date__month=launch_date.month)
<QuerySet []>

Что я делаю не так?

Вернуться на верх