/ 不支持的操作数类型:'Vat' 和 'int'
unsupported operand type(s) for /: 'Vat' and 'int'
一直在搜索,但我找不到合适的解决方案我在根据 Django 模型中的 2 个值计算增值税金额时遇到问题。
首先增值税模型是这样的
class Vat(models.Model):
vat_name = models.CharField(max_length=200)
vat_value = models.IntegerField()
def __str__(self):
return str(self.vat_value)
然后我有如下的语句模型
class Statement(models.Model):
sales_invoice = models.IntegerField(blank=True, null=True)
vat_value = models.ForeignKey(Vat, on_delete=models.CASCADE, blank=True, null=True)
amount_in = models.DecimalField(max_digits=7, decimal_places=2, blank=True, null=True)
def vat_amt_in(self):
if self.amount_in and self.vat_value :
vat_amt_in = (self.vat_value/100)*self.amount_in
else:
return None
所以在这之后我得到了错误
unsupported operand type(s) for /: 'Vat' and 'int'
任何人都可以帮助我获得正确的增值税金额
比如如果 vat_value = 21 并且 amount_in =50 那么 vat_amt_in =10,50
您的错误来自 self.vat_value/100
,其中第一个参数是 Vat 类型,不能被整数整除。您可能想要 self.vat_value.vat_value/100
(如果 IntegerField() 可以被整数整除)。
一直在搜索,但我找不到合适的解决方案我在根据 Django 模型中的 2 个值计算增值税金额时遇到问题。
首先增值税模型是这样的
class Vat(models.Model):
vat_name = models.CharField(max_length=200)
vat_value = models.IntegerField()
def __str__(self):
return str(self.vat_value)
然后我有如下的语句模型
class Statement(models.Model):
sales_invoice = models.IntegerField(blank=True, null=True)
vat_value = models.ForeignKey(Vat, on_delete=models.CASCADE, blank=True, null=True)
amount_in = models.DecimalField(max_digits=7, decimal_places=2, blank=True, null=True)
def vat_amt_in(self):
if self.amount_in and self.vat_value :
vat_amt_in = (self.vat_value/100)*self.amount_in
else:
return None
所以在这之后我得到了错误
unsupported operand type(s) for /: 'Vat' and 'int'
任何人都可以帮助我获得正确的增值税金额
比如如果 vat_value = 21 并且 amount_in =50 那么 vat_amt_in =10,50
您的错误来自 self.vat_value/100
,其中第一个参数是 Vat 类型,不能被整数整除。您可能想要 self.vat_value.vat_value/100
(如果 IntegerField() 可以被整数整除)。