对于QuerySet
个博客条目,我想创建这些帖子的DateQuerySet
个月。查询是:
dates = Entry.published.all().dates('pub_date', 'month')
“month”返回该字段的所有不同年/月值的列表。
如果我有4个日期条目:
我希望返回3个datetime对象;一个用于Dec
,Jan
,Feb
,而是我返回4个,每个原始日期一个
这是预期的行为吗?我已尝试将distinct()
添加到查询中,但它仍会返回每个日期。
更新
解决此问题的一种简单方法是从Set
:
DateQuerySet
dates = Entry.published.all().dates('pub_date', 'month')
return set(dates)
这会删除重复的datetime
个对象,但我仍然不明白为什么会这样(或者如果我误解了date()的工作方式)
答案 0 :(得分:1)
您的症状听起来与GROUP BY
查询完全相同。
您可以print query.query
查看是否将排序应用于将添加到SELECT
的字段,从而使所有这些排序也相同。
Entry.published.dates('pub_date', 'month').order_by()
答案 1 :(得分:0)
datetimes()
而不是dates()
是个好主意。
我的环境:
仅供参考: