2011-09-21 2 views
-1

Je semble avoir un problème de multiplication dans Django. Je veux multiplier l'achat total incluant la TVA avec ma valeur de TVA. Malheureusement, j'ai eu cette erreur.Type (s) d'opérande non supporté (s) pour *: 'Decimal' et vat

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

Il ressemble à mon programme appelle vat (voir vues) `la « TVA » plutôt que décimal. Je ne suis pas sûr pourquoi il y a une erreur à moins qu'il y ait un autre moyen de contourner cela.

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) 

Répondre

4

purchases[0].vat donne un exemple de leModèleVous devez utiliser purchases[0].vat.vat pour obtenir la valeur réelle.

1

à une supposition, avez-vous voulu dire:

vat = purchases[0].vat.vat 
Questions connexes