如何对模板

时间:2017-11-02 06:44:41

标签: django django-templates django-views

为简单起见,假设数据库包含以下列:

表:门票

柱: 性别,数量,日期

其中Gender可以是M或F.每次购买都会插入一行。最后,我想要一个堆积的条形图,显示每个月男性和女性购买的数量。

我似乎无法找到一种方法来做到这一点,不需要2个查询,一个是每月M和一个F每月的总和。问题是查询集可能没有相同数量的对象,并且按日期可能不是相同的顺序。

我试过了: set = Model.objects.filter(date__month = month).values('gender')。aggregate(Sum('quantity'))

按日期排序,但不将M与F.分开。 添加M或F作为过滤器会为其中一个组生成正确的数量。

使用两个查询(M,F各一个)产生正确的数量和日期范围,但不一定产生相同数量的集合。 (例如,如果在某些月份M没有购买)。

提前感谢您的指导。

1 个答案:

答案 0 :(得分:1)

您可以使用以下声明:

Model.objects.filter(date__month = month).values('gender'). \
    annotate(total=Sum('quantity'))

为了每个性别每月的数量总和