我正在使用Django查询集进行一些聚合,这些查询集对MySQL后端工作正常。当我运行以下代码以在整个查询集中聚合时:
agg = myqueryset.values('name', 'category').annotate(Sum('quantity'))
使用MySQL,我得到:
[{'name': u'My Name', 'category': 21L, 'quantity__sum': 10}]
当我使用Django的TestCase或django-webtest对sqlite3运行相同的代码时,在内存数据库中,我得到以下内容:
[{'name': u'My Name', 'category': 21, 'quantity__sum': 3}, {'name': u'My Name', 'category': 21, 'quantity__sum': 7}]
我能看到的唯一区别是碰巧是FK的类别在使用MySQL输出时报告为21L,在sqlite3测试期间输出时报告为21。关于为什么聚合不能与我的测试一起工作的任何想法,但是当从针对MySQL的视图调用相同的代码时工作正常?