Django - 无法将关键字'total'解析为字段



我有一个名为Cart的模型,其中包含以下字段

class Cart(models.Model):
    client = models.ForeignKey(User, null=True)
    description = models.CharField(max_length = 100)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    quantity = models.PositiveIntegerField()
    ordered = models.BooleanField(default=False)
    created_on = models.DateTimeField(auto_now_add = True)
    def __str__(self):
        return self.description
    def total(self):
        return self.price * self.quantity 

我希望在 django 视图中获得每个项目的总金额。

这是购物车视图

def cart(request):    # Client View
    request_user = request.user
    item = Cart.objects.filter(client=request_user, ordered=False).values('total')
    print "item ", item

如果我打印项目,我得到无法将关键字"总计"解析为字段。选项包括:客户端、client_id、created_on、描述、文档文件、ID、order_id、订购、价格、数量

但是如果我在 .value('price') 时打印项目,我会得到结果。

有没有办法获得总金额的价值

你为什么不试试这个? 即,通过Cart实例访问 total 方法。

[i.total() for i in Cart.objects.filter(client=request_user, ordered=False)]

您需要创建总函数,该函数将根据客户端过滤的每个对象的价格,或者您可以按如下方式进行正确查询:

total = 0
    for i in Cart.objects.filter(client=request_user, ordered=False).all():
        #print i.price
        total = total+i.price

您不能写values('total'),因为您的卡模型中没有任何字段作为总计。

最新更新