【问题标题】:unsupported operand type(s) for *: 'Decimal' and vat* 不支持的操作数类型:“十进制”和增值税
【发布时间】:2011-09-21 11:01:46
【问题描述】:

我似乎在 Django 中进行乘法运算时遇到了问题。我想将包括增值税在内的总购买量乘以我的增值税值。不幸的是,我收到了这个错误。

unsupported operand type(s) for *: 'Decimal' and 'VAT'

看起来我的程序调用vat(见视图)`'VAT'而不是十进制。我不确定为什么会出现错误,除非有另一种解决方法。

Views.py

purchases = Purchase.objects.all()
vat = purchases[0].vat
total_purchases = Purchase.objects.all().aggregate(price = Sum('amount'))
total_purchases_vat = total_purchases['price'] * vat

models.py

class VAT(models.Model):
    vat = models.DecimalField(max_digits = 4, decimal_places = 1)
    def __unicode__(self):
        return unicode(self.vat)

class Purchase(models.Model):
    vat_period = models.ForeignKey(VAT_Period)
    date = models.DateField()
    amount = models.DecimalField(max_digits=20, decimal_places=2)
    description =  models.TextField(max_length = 400)
    vat = models.ForeignKey(VAT)
    def __unicode__(self):
        return unicode(self.amount)

【问题讨论】:

    标签: python django math models


    【解决方案1】:

    purchases[0].vat 产生VAT 模型的一个实例。您需要使用purchases[0].vat.vat 来获取实际值。

    【讨论】:

      【解决方案2】:

      猜测一下,你是不是想说:

      vat = purchases[0].vat.vat
      

      【讨论】:

        猜你喜欢
        • 2018-10-29
        • 2015-08-04
        • 2015-11-23
        • 2021-08-17
        • 2018-11-08
        • 2011-11-22
        • 2013-01-02
        相关资源
        最近更新 更多