无法在模型形式的 IntegerField() 小部件中设置属性

hul*_*ain 0 python django django-forms

我正在尝试使用模型表单在 Django 中创建一个表单,但我遇到了一个问题。以下是我在 forms.py 中的代码,它有一个IntegerField(),我想为它设置一个自定义 id 和类,但我无法attrs在小部件的帮助下这样做,IntegerField()CharField()它的工作原理。

forms.CharField(widget=forms.CharField(attrs={'id': 'customID'}))有效

hours = forms.IntegerField(widget=forms.IntegerField(attrs={'id': 'blah', }))没有

表格.py

class TimerForm(forms.ModelForm):        
    hours = forms.IntegerField(required=True, min_value=0, widget=forms.IntegerField(attrs={'id': 'blah', }))        

    class Meta:
        model = Timer
        fields = ['hours']
Run Code Online (Sandbox Code Playgroud)

cmd错误:

超级(整数字段,自我)。init (*args, **kwargs)
TypeError: init () 得到一个意外的关键字参数 'attrs'

Dan*_*man 5

你不能在那里使用字段。您应该使用相关的小部件:TextInput 和 NumberInput。


Lau*_*oda 5

你应该做这样的事情:

class TimerForm(forms.ModelForm):
    class Meta:
       model = Timer
       fields=['hours']
       widgets = {
           'hours': forms.NumberInput(attrs={'min': '0', 'class': 'yourClass', 'id': 'blah'}),
    }
Run Code Online (Sandbox Code Playgroud)