Python Can';t在模型形式的IntegerField()小部件中设置属性
我试图使用模型表单在Django中创建表单,但我面临一个问题。下面是我在forms.py中的代码,它有一个Python Can';t在模型形式的IntegerField()小部件中设置属性,python,django,django-forms,Python,Django,Django Forms,我试图使用模型表单在Django中创建表单,但我面临一个问题。下面是我在forms.py中的代码,它有一个IntegerField(),我想为它设置一个自定义id和类,但是在IntegerField()小部件中的attrs的帮助下,我无法这样做,而对于CharField()它可以工作 forms.CharField(widget=forms.CharField(attrs={'id':'customID'}))起作用但是 hours=forms.IntegerField(widget=forms
IntegerField()
,我想为它设置一个自定义id和类,但是在IntegerField()
小部件中的attrs
的帮助下,我无法这样做,而对于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)类型错误: init()获得意外的关键字参数“attrs”
不能在那里使用字段。您应该使用相关的:TextInput和NumberInput。您应该这样做:
class TimerForm(forms.ModelForm):
class Meta:
model = Timer
fields=['hours']
widgets = {
'hours': forms.NumberInput(attrs={'min': '0', 'class': 'yourClass', 'id': 'blah'}),
}
这两种方法都行不通。IntegerField和CharField都不是小部件;它们是字段,因此才有名字。@DanielRoseman好的,谢谢你指出,我是Django的新手。你能建议一个方法来做我想做的事吗?是否有一种本地方法来设置输入字段的自定义属性,或者必须创建自定义字段才能实现我想要的功能?非常感谢!这有帮助!