Для QuerySet
записей в блоге я хочу создать DateQuerySet
месяцев, в которые были сделаны эти сообщения.Запрос:
dates = Entry.published.all().dates('pub_date', 'month')
Согласно документам
"Месяц" возвращает список всех различных значений года / месяца для поля.
Если у меня есть 4 записи с датами:
- (2012 г., 3 февраля)
- (2012 г., 2 февраля)
- (2012 г., 24 января)
- (2011 г., 28 декабря)
Я ожидаю получить 3 объекта datetime;один для Dec
, Jan
, Feb
, вместо этого я возвращаю 4, по одному на каждую из исходных дат
Это ожидаемое поведение?Я попытался добавить distinct()
к запросу, но он по-прежнему возвращает каждую дату.
ОБНОВЛЕНИЕ
Простой способ исправить это сделать Set
из DateQuerySet
:
dates = Entry.published.all().dates('pub_date', 'month')
return set(dates)
Thisудаляет дубликаты datetime
объектов, но я до сих пор не понимаю, почему это происходит (или если я неправильно понимаю, как работает date ())