首页 > 解决方案 > Django 获取特定用户的所有列的总和

问题描述

我有一个 django 模型如下:

class Order(models.Model):
    cash=models.DecimalField(max_digits=11,decimal_places=2,default=0)
    balance=models.DecimalField(max_digits=11,decimal_places=2,default=0)
    current_ac=models.DecimalField(max_digits=11,decimal_places=2,default=0)   
    added_by = models.ForeignKey(User)

可以有多个订单,并且多个用户可以创建订单。

如何获得特定用户每列的所有订单总和,例如

ord=Order.objects.filter(added_by.id=1).sum()

SQL 等价物类似于

Select sum(cash), sum (balance), sum(current_ac) from Orders where added_by = 1

标签: pythondjangodjango-models

解决方案


如果我理解正确的话。你想计算记录的数量,对吧?如果是这样的话。您可以使用过滤器和计数。如下例所示:

numberOfRecords = Orders.filter(added_by=user_id).count

推荐阅读