由于种种原因,我刚从Django 1.6升级到1.8。 我注意到我的应用程序显示的数据有一些变化。 也许有人可以帮我找到问题。
这是我的代码:
users = __apply_filters(User.objects.all(), request)
users = users.extra({
'month': 'month(created)',
'year': 'year(created)'
}).values('year', 'month').annotate(dcount=Count('created', distinct=True))
在__apply_filters函数中,我根据一些过滤器过滤数据。
运行1.6项目时,我得到了这个结果:
[{'month': 11L, 'dcount': 4, 'year': 2015L}]
运行1.8项目时,我得到了这个结果(使用相同的输入数据):
[{'month': 11L, 'dcount': 1, 'year': 2015L}, {'month': 11L, 'dcount': 1, 'year': 2015L}, {'month': 11L, 'dcount': 1, 'year': 2015L}, {'month': 11L, 'dcount': 1, 'year': 2015L}]
显然,这显示错误的数据。
我要提到的是我的DataBase是MySQL。我需要这种聚合,因为我有日期过滤和显示时间轴的各种图表。
有没有人遇到过这样的问题?
谢谢!