2015-10-10 76 views
0

數據時,當我嘗試執行以下計算:異常正從形式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選擇:

value = models.DecimalField(max_digits=5, decimal_places=2, validators=[MinValueValidator(0),MaxValueValidator(100)]) 

當我打印offer_form.cleaned_data ['tax']。value這是我得到的:

65.00 

我的問題是:爲什麼它使用方法時,我使用方法Instance(),而不是當我將值歸於變量。 而且,我怎樣才能使它工作?

回答

3

你有一個額外的逗號,在這裏:

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

這使它成爲一個元組..

+0

我不能相信我花了2個小時,這個愚蠢的語法錯誤。 –

+1

發生在我們身上;-) – thebjorn