对不起,我的原始数据有问题,我试图将每个月的总销售额相加,但是出现错误。 这是我的视野。
class TotalSale(ListAPIView):
serializer_class = TotalSaleSerealizer
def get_queryset(self):
queryset = Sale.objects.raw("SELECT 1 id, SUM(totalprice),
to_char(datesale,'yyyy-MM') FROM sales_sale group by
to_char(datesale,'yyyy-MM')")
return queryset
我正在使用to_char更改日期格式,因此我可以计算每个月的销售额,当我直接在Postgresql中执行此查询时效果很好,但是在django中执行时,我不投票正确的数据。
1,'1197','2018-10'
1,'612','2018-09'
1,'1956','2018-08'
没关系,我可以计算每个月的销售额之和 但是,当我在Django中执行此操作时,这就会浮现出来。
{
"id": 1,
"totalprice": 144,
"datesale": "2018-08-06"
},
{
"id": 1,
"totalprice": 144,
"datesale": "2018-08-06"
},
{
"id": 1,
"totalprice": 144,
"datesale": "2018-08-06"
}
我认为错误是针对1 id的,只是过滤具有id 1的数据的数据,我的问题是为什么会发生这种情况,如何解决它尝试删除1 id但又出现了另一个错误,如何我可以解决这个问题吗?
答案 0 :(得分:0)
我认为其余的都是无关紧要的,因为视图是最重要的,但是这里是其余的代码。
class TotalSaleSerealizer(ModelSerializer):
class Meta:
model = Sale
fields = ('id','totalprice', 'datesale')
class Sale(models.Model):
id_customer = models.ForeignKey(Customer, null =False, blank=False,
on_delete=models.CASCADE)
id_user = models.ForeignKey(User, null =False, blank=False,
on_delete=models.CASCADE)
datesale = models.DateField(auto_now_add=True)
totalprice = models.IntegerField()
这些是serealizer和模型