我有以下两种模式:
class Order(models.Model):
set_on = models.DateField()
class Details(models.Model):
order = models.ForgienKey(Order, related_name='order_detail')
quantity = models.IntegerField()
item = models.CharField()
现在的数据是:
id set_on
1 2017-07-01
2 2017-07-10
3 2017-08-01
4 2017-09-01
和细节:
id order_id quantity item
1 1 10 box
2 1 11 pens
3 3 5 box
现在需要的输出:
period total orders total quantity
07/2017 2 21
08/2017 1 5
09/2017 1 0
在2017年7月,共订购了2个订单,总数为21个。
这是我到目前为止所拥有的。它带来数量好,但总订单总是等于最高。即上述2,即使是8个月和9个月,当时订单总数仅为1个。
data = Order.objects.all().annotate(mon=Extract('set_on','month'), yr=Extract('set_on','year')).values('mon', 'yr').annotate(total_orders=Count('mon','yr'), total_quantity=Sum('order_detail__quantity'))
如何修复它以获得所需的输出?