从表单Django获取数据时出现异常

时间:2015-10-10 12:27:30

标签: python django

当我尝试执行以下计算时:

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,
    ...
)

models.py

报价中的税场:

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()时,它为什么用来工作,而不是在我将值赋值给变量时。 而且,我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:3)

你有一个额外的逗号,在这里:

offer.tax = offer_form.cleaned_data['tax'].value,

这使它成为一个元组..