2014-11-05 56 views
0

我在我的表單中有一個小數字段。四捨五入Django輸入字段使其消失

輸入顯示如值:60.00

我希望它顯示:60

我曾嘗試:

{% load humanize %} 
{{ form.amount|floatformat }} 

我還試圖改變我的表單字段爲一個整數:

class AmountInfoForm(forms.ModelForm): 

    amount = forms.IntegerField() 

    class Meta: 
     model = Customer 
     fields = ('amount',) 

這使得該領域消失。

我在做什麼錯?

+1

如果你只是想顯示整數,你爲什麼要使用DecimalField?爲什麼不使用IntegerField? – 2014-11-05 16:39:09

+0

@DanielRoseman,因爲我需要在後端進行精確計算的小數字段。這個號碼將被分割和操縱。是否有可能做到這一點? – Atma 2014-11-05 16:55:43

+0

沒有回答這個問題。如果要顯示小數,請在表單上使用整數字段;您仍然可以將數據存儲在模型的小數字段中。 – 2014-11-05 16:58:06

回答

0

恐怕我看到你正在將floatformat應用到輸入元素而不是有效的數值。結果,它沒有顯示,因此Django更喜歡不顯示任何東西。

你可以試試這個解決方法,那麼:

首先,請嘗試打印您的形式是這樣的:

{{ form.as_table }} 

如果你看一下源代碼,你可以看到,例如,對於外地輸入的被叫顯示是這樣的:

<input id="id_name" name="name" maxlength="25"> 

因此,你可以效仿這種行爲在做你的Django模板以下幾點:

<input id="id_{{form.amount.label}}" name="{{form.amount.label}}" maxlength="25" value={{form.amount.value|floatformat:0}}> 

總體而言,這個祕密是應用floatfomat到form.amount.value代替form.amount

希望它適合你!