在django ORM中获取每月订单总数和每月订购的总数量

时间:2017-09-03 18:14:20

标签: django

我有以下两种模式:

 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'))

如何修复它以获得所需的输出?

0 个答案:

没有答案