计算单价与数量的总和

0 投票
1 回答
1456 浏览
提问于 2025-04-18 10:07

这是我模型中的一段内容:

class Order(models.Model):
    ...
    content_type = models.ForeignKey(ContentType)
    user = models.ForeignKey('auth.User')


class OrderItem(models.Model):
    ...
    unit_price = models.DecimalField(max_digits=7, decimal_places=2, blank=True)
    quantity = models.SmallIntegerField()
    order = models.ForeignKey(Order)

我有一个仪表盘,想要显示售出商品的总数。但是我在想怎么把 unit_price(单价)和 quantity(数量)相乘。

1 个回答

2
  1. 你可以通过一个叫 extra() 的查询来实现这个:

    OrderItem.objects.extra(select={'total': 'unit_price * quantity'})
    
  2. 你可以给 OrderItem 添加一个属性 total

    class OrderItem(models.Model):
        ...
        unit_price = models.DecimalField(max_digits=7, decimal_places=2, blank=True)
        quantity = models.SmallIntegerField()
    
        @property
        def total(self):
            return unit_price * quantity
    
    # you can then access it like any other field (but you cannot filter on it)
    print OrderItem.objects.get(pk=1).total
    

撰写回答