Django错误:*不支持的操作数类型:'NoneType'和'float'

时间:2016-08-23 08:56:17

标签: python django


我的代码有问题。我当时要解决它,但我没有发现类似的问题。我想多次,然后总结一些字段值,但我从标题中得到错误。有解决这个问题吗?我想这是数据类型的问题,但我不知道如何定义方程。请帮帮我。

class Bill(models.Model):
   date = models.DateField(default=datetime.now())
   tax = models.FloatField(default=0.20)
   priceNoTax = models.IntegerField()#integer that I get from other class
   priceTax = models.FloatField()
   idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account")

   def save(self, *args, **kwargs):
       if self.priceTax is None:
           self.priceTax = self.priceNoTax+(self.priceNoTax*self.tax)#here is an error
       super(Bill, self).save(*args, **kwargs)

   def __str__(self):
        return self.date

非常感谢!

1 个答案:

答案 0 :(得分:0)

错误消息中参数的顺序对应于代码:

'NoneType' and 'float'< => self.priceNoTax*self.tax

self.priceNoTax尚未初始化,或者如果您从数据库加载了它,那么它包含NULL。您可以在乘法发生之前使用print内容self.priceNoTax来验证这一点。

仔细检查self.priceNoTax的设置方式。