Python Can';t在模型形式的IntegerField()小部件中设置属性

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

我试图使用模型表单在Django中创建表单,但我面临一个问题。下面是我在forms.py中的代码,它有一个
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的新手。你能建议一个方法来做我想做的事吗?是否有一种本地方法来设置输入字段的自定义属性,或者必须创建自定义字段才能实现我想要的功能?非常感谢!这有帮助!