У меня есть эта модель:
class Item(models.Model):
amount = models.DecimalField(max_digits=15, decimal_places=2)
quantity = models.DecimalField(max_digits=15, decimal_places=6)
total = models.DecimalField(max_digits=15, decimal_places=2)
def save(self, *args, **kwargs):
## Following lines are for debugging only
print(self.amount)
print(self.quantity)
print(type(self.amount))
print(type(self.quantity))
self.total = self.amount*self.quantity
super(Item, self).save(*args, **kwargs)
То, что я пытаюсь сделать здесь, это автоматически рассчитать и сохранить общую стоимость (количество * сумма). Это то, что мне нужно иметь в качествеполе, но оно должно быть вычислено автоматически. Однако я получаю эту ошибку:
не может умножить последовательность на не-int типа 'str'
Когда я смотрюв результатах print () и print (type ()) ... Я вижу, что эти поля действительно являются строками, даже если они содержат ожидаемые мной числа:
982.00
0.008300
<class 'str'>
<class 'str'>
По моему мнению, именно таксохранить записи:
item = new Item()
item.amount = request.POST["amount"]
item.rate = request.POST["rate"]
item.save()
Почему это происходит?