2

我正在使用 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 的视图中调用相同代码时可以正常工作的任何想法?

4

0 回答 0