第一个
我正在尝试获取将显示在结帐页上的自动总价。我想在CartItem模型上添加“total_price”列并设置默认值“item.price * qty”,但当我尝试将此行添加到类中时:
total_price = models.IntegerField(default=item.price)
因为qty默认值是1,但我得到了AttributeError:'ForeignKey'对象没有属性'price'错误
我也试着在类中添加以下内容:
@property
def total_price(self):
item = self.object.get(product=self.item)
return self.item.price
但是我不确定哪个模型会有这个属性?而且当我添加这个方法时,我丢失了total_price列,我将它的默认值设置为0。我为解决方案的质量不足而道歉!
2条答案
按热度按时间nnvyjq4y1#
您的方向是正确的。您可以尝试annotation or aggregation以获得总价。以下是一种方法:
对于使用带Sum的注解的所有购物车项目:
对于一个购物车,您可以尝试使用聚合,如下所示:
xytpbqjk2#
将total_price属性更改为:
并且您可以轻松地得到订单项目的总价。
如果你想得到所有CartItems价格的总金额可以做如下: