我的表invoices
包含字段customer_id
和其他一些字段。我需要每个用户选择的购买次数。在SQL中它应该是这样的:
SELECT username, COUNT('customer_id') FROM `invoices`
LEFT JOIN `auth_user` ON `auth_user`.id = `invoices`.customer_id
GROUP BY `customer_id`, username
在Django中我尝试:
Invoice.objects.annotate(buy_count=Count('customer')).all()
但是此代码按invoices.id
而不是invoices.customer_id
进行分组并返回错误的结果。
答案 0 :(得分:1)
我认为你应该扭转它,例如:
Customer.objects.annotate(buy_count=Count('invoice')).all()
在那里,您将获得一份客户名单及其发票数。