无法覆盖django中NumberInput字段的step属性

时间:2014-07-14 18:37:44

标签: django

我试图创建一个步长为0.5的NumberInput小部件,其格式如下所示:

widgets = {
    "hours_per_day": widgets.NumberInput(attrs={'step': '0.5'})
}

但是,始终使用属性step为0.1来呈现模板。此小部件适用于ModelForm的DecimalField。为什么step属性不会改变?

以下是表单中的(有用)代码:

class Registration_form(ModelForm):
    class Meta:
        model = Registration

        fields = [
            "hours_per_day",
        ]

        widgets = {
            "hours_per_day": widgets.NumberInput(attrs={'step': '1'})
        }

1 个答案:

答案 0 :(得分:5)

尝试将NumberInput定义为TextInput,然后逐步0.5

from django.forms.widgets import TextInput

class NumberInput(TextInput):
    input_type = 'number'


#Usage
widgets = (
    'number_field': NumberInput(attrs={'min': '0', 'max': '10', 'step': '0.5'}),

)