#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() делится на целое число).