Django Float 字段输入

Ale*_*lla 7 forms django 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'}))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当我单击 + - 按钮时,它不包括浮点数(即 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'}))
Run Code Online (Sandbox Code Playgroud)

'step' 属性有效,但 max_value/min_value 无效。如果我不以这种方式定义 NumberInput 并使用常规的 NumberInput,则它根本不起作用。

Pro*_*mik 9

您可以通过在表单小部件中包含 NumberInput 并设置步骤属性来做到这一点

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

与上述答案的区别在于缺少表单 NumberInput 的表单引用


mat*_*gus 5

只需将“step”属性指定为小部件属性,这样:

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