当在建立模型的时候
ordering = [‘username’]
在使用values和annotate的时候,values在annotate前面相当于分组
group by后面会增加username排序字段 。
users = User.objects.values(‘type’).annotate(Count(‘num’))
SELECT user.type, COUNT(user.num) AS num__count FROM user GROUP BY user.type, user.username
加order_by()去掉排序后,恢复正常,变成
SELECT user.type, COUNT(user.num) AS num__count FROM user GROUP BY user.type
当如果 ordering = [‘id’] 直接会导致分组失效,这里需要注意 ordering 对 annotate 的影响, 是个小坑
0则评论给“关于django中的annotate使用”