неподдерживаемые типы операндов для /: «Ндс» и «int»

#python #django #django-models #django-views

Вопрос:

я искал и не могу найти правильное решение, у меня проблема с расчетом суммы Ндс из 2 значений в моделях Django.

во-первых, модель НДС выглядит следующим образом

 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  

поэтому после этого я получаю ошибку

неподдерживаемые типы операндов для /: «Ндс» и «int»

любой может помочь мне с этим, чтобы я получил правильную сумму НДС

например, если vat_value = 21 и amount_in =50, то vat_amt_in =10,50

Комментарии:

1. Огромное спасибо!. Это то, чего я хотел. это работает, как мне отметить этот комментарий в качестве ответа?

2. Я добавил его как один — не стесняйтесь удалять скопированный 🙂

Ответ №1:

Ваша ошибка возникает из self.vat_value/100 -за того , что первым аргументом является тип Vat, а не что-то, делимое на целое число. Вы, вероятно, хотели self.vat_value.vat_value/100 (если IntegerField() делится на целое число).