我正在尝试使用模型表单在Django中创建一个表单,但我遇到了一个问题。以下是我在forms.py中的代码,其中包含IntegerField()
,我想为它设置自定义ID和类,但我无法在attrs
的小部件IntegerField()
的帮助下执行此操作{1}}而CharField()
则有效。
forms.CharField(widget=forms.CharField(attrs={'id': 'customID'}))
有效,但
hours = forms.IntegerField(widget=forms.IntegerField(attrs={'id': 'blah', }))
不。
forms.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']
cmd中的错误:
super(IntegerField,self)。 init (* args,** kwargs)
TypeError: init ()获得了意外的关键字参数'attrs'
答案 0 :(得分:1)
你不能在那里使用字段。您应该使用相关的widgets:TextInput和NumberInput。
答案 1 :(得分:1)
你应该做那样的事情:
class TimerForm(forms.ModelForm):
class Meta:
model = Timer
fields=['hours']
widgets = {
'hours': forms.NumberInput(attrs={'min': '0', 'class': 'yourClass', 'id': 'blah'}),
}