Django浮点字段输入

fcipmucu  于 2023-08-08  发布在  Go
关注(0)|答案(4)|浏览(73)

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

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

字符串
x1c 0d1x的数据
当我点击+按钮时,它不包括浮点数(即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,它根本不起作用。

yizd12fk

yizd12fk1#

您可以通过在表单小部件中包含NumberInput并设置step属性来实现这一点

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

字符串
与上述答案的不同之处在于缺少表单的NumberInput引用

s8vozzvw

s8vozzvw2#

只需要指定“step”属性作为widget属性,这样:

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

字符串

6bc51xsx

6bc51xsx3#

还可以通过在表单小部件中包含TextInput来实现这一点

homework = forms.FloatField(
    required=False, 
    widget=forms.TextInput(
        attrs={'type': 'number', 'id':'form_homework', 'min': '0', 'max':'10', 'step':'0.01'}
    )
)

字符串

envsm3lx

envsm3lx4#

你可以使用forms.NumberInput如下所示,然后一切正常工作:

from django import forms

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

字符串
此外,下面的代码也可以正常工作:

from django import forms

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

相关问题