无法在模型表单中的IntegerField()小部件中设置attrs

时间:2016-12-16 17:50:39

标签: python django django-forms

我正在尝试使用模型表单在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'

2 个答案:

答案 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'}),
    }