2011-09-21 59 views
-1

我似乎具有在Django相乘的问题。我想将包括增值税的总采购额与我的增值税价值相乘。不幸的是,我得到了这个错误。不受支持的操作数类型:“十进制”和大桶

unsupported operand type(s) for *: 'Decimal' and '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) 

回答

4

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

1

在猜测,你的意思是说:

vat = purchases[0].vat.vat 
相关问题