Django Float Field输入

时间:2015-01-14 18:03:05

标签: django forms floating-point django-widget

创建一个接受浮点数并具有与NumberInput相同功能的django表单字段的最佳方法是什么?我的意思是相同的功能是django的NumberInput在输入旁边有箭头,可以增加或减少数字,它也接受min_value和max_value。如果我使用TextInput小部件,我将无法获得此功能。如果我使用NumberInput小部件,它将无法使用浮点数:

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

enter image description here

单击+ - 按钮时,它不包括浮点数(即5.5)。此外,如果我想将实际浮点数(作业的等级)设置为初始值(使用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'}))

'step'属性有效,但max_value / min_value不起作用。如果我没有这样定义NumberInput并使用常规的NumberInput,它根本不起作用。

3 个答案:

答案 0 :(得分:4)

只需指定"步骤"属性作为窗口小部件属性,这样:

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

答案 1 :(得分:1)

您可以通过将NumberInput包含在表单窗口小部件中并设置步骤属性

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

与上述答案的不同之处是缺少表单引用与表单的数字输入

答案 2 :(得分:1)

您还可以通过在表单小部件中包含TextInput来实现此目的

TreeMap<Integer, String>(myMapObject)