当我尝试执行以下计算时:
self.total * ((100 + self.tax) / 100)
我明白了:
unsupported operand type(s) for +: 'int' and 'tuple'
我得到的值是:
offer = offer_form.save(commit=False)
offer.tax = offer_form.cleaned_data['tax'].value,
我认为.value应该给我表单的值,在这种情况下是一个ChoiceField。我曾经像以下一样创建对象,它曾经工作过:
offer = Offer(
...
tax=offer_form.cleaned_data['tax_model'].value,
...
)
报价中的税场:
tax = models.DecimalField(default=0, max_digits=5, decimal_places=2, validators=[MinValueValidator(0),MaxValueValidator(100)])
我从ChoiceField中选择的Tax对象:
value = models.DecimalField(max_digits=5, decimal_places=2, validators=[MinValueValidator(0),MaxValueValidator(100)])
当我打印offer_form.cleaned_data [' tax']。这是我得到的:
65.00
我的问题是:当我使用方法Instance()时,它为什么用来工作,而不是在我将值赋值给变量时。 而且,我怎样才能使它发挥作用?
答案 0 :(得分:3)
你有一个额外的逗号,在这里:
offer.tax = offer_form.cleaned_data['tax'].value,
这使它成为一个元组..