我正在尝试制作一个步长为 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'})
        }

最佳答案

尝试将 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'}),

)

关于django - 无法覆盖 Django 中 NumberInput 字段的 step 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24743438/

10-12 21:38