2015-01-14 68 views
3

哪個是創建一個接受float並具有與NumberInput相同功能的django表單字段的最佳方法?我的意思是相同的功能是,Django的NumberInput在輸入旁邊有箭頭,可以增加或減少數字,它也接受min_value和max_value。如果我使用TextInput小部件,我不會得到這個功能。如果我使用NumberInput窗口小部件,它不會與彩車工作:Django浮點字段輸入

homework = forms.FloatField(required=False, max_value=10, min_value=0, widget=NumberInput(attrs={'id': 'form_homework'})) 

enter image description here

它不包括浮動(即5.5),當我點擊+ - 按鍵。另外,如果我想將實際的float(作業的等級)設置爲初始值(使用Jquery),它根本不會顯示浮點數。

歡迎任何建議。

編輯:

如果我做的:

class NumberInput(TextInput): 
    input_type = 'number' 

homework = forms.FloatField(required=False, max_value=10, min_value=0, 
    widget=NumberInput(attrs={'id': 'form_homework', 'step': '0.1'})) 

的 '步' 屬性的作品,但MAX_VALUE/MIN_VALUE沒有。如果我沒有以這種方式定義NumberInput並使用常規的NumberInput,它根本不起作用。

+0

您可能必須找到一個JavaScript將實現此功能;有一個你可以使用的數字,它給出了向上/向下箭頭將做什麼的選項(即設置「步長」的大小,即0.10或1.0等)。 –

+0

所以..是的,我想我可以用Js做,但我想知道是否有Django小部件或其他東西。 – alejoss

回答

1

您可以通過NumberInput與表單控件和設置步驟屬性

homework = forms.FloatField(required=False, max_value=10, min_value=0, 
widget=forms.NumberInput(attrs={'id': 'form_homework', 'step': "0.01"})) 

差異從上面做到這一點答案缺少窗體引用NumberInput的形式

3

只要指定「步」屬性作爲控件的屬性,這樣一來:

homework = forms.FloatField(required=False, max_value=10, min_value=0, widget=NumberInput(attrs={'id': 'form_homework', 'step': "0.01"})) 
+0

感謝您的回答,但它不起作用。請看看編輯。 – alejoss

+0

我認爲@matagus建議使用'django.forms.NumberInput',而不是使用該名稱創建自己的輸入。 – thespacecamel