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

ubo*_*mbi 4 python django rdbms model python-2.7

为什么Django按ID分组?这是queryset:

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
Run Code Online (Sandbox Code Playgroud)

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

... GROUP BY paymentidORDER BY paymentid...

代替

... GROUP BY paymentterminal_idORDER BY paymentterminal_id...

小智 6

请在此处查看“警告”:

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

可能是默认顺序妨碍了操作。尝试添加.order_by()到查询的末尾以查看是否清除了顺序。