为什么 django 按错误的字段分组?注释()

Why django group by wrong field? annotate()

为什么 Django 按 id 字段分组? 这是查询集:

MyModel.objects\
    .filter(
        status=1,
        created__gte=datestart,
        created__lte=dateend)\
    .values('terminal_id')\
    .annotate(
        total_pa=Sum('amount'),
        total_ar=Sum('amount_result')).query

但它按 pk 字段排序和分组。

... 分组依据 payment.id 排序依据 payment.id ...

而不是

... 分组依据 payment.terminal_id 排序依据 payment.terminal_id ...

在此处查看 "Warning":

https://docs.djangoproject.com/en/1.8/topics/db/aggregation/#interaction-with-default-ordering-or-order-by

也许默认顺序妨碍了。尝试将 .order_by() 添加到查询的末尾,看看是否可以清除排序。