我正在学习django小部件文档https://docs.djangoproject.com/en/2.2/ref/forms/widgets/我创建了示例中的新课程:
class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField()
然后尝试将CSS类添加到名称:
name.widget.attrs.update({'class': 'special'})
但是Django Crushes和Vscode向我发送了错误:类" text -unput"没有" attrs"成员
有什么问题?
请注意,错误消息说" class 'textInput'没有'attrs'成员。
您正在尝试修改小部件类。属性只有在实例化窗口小部件后才可用:
form = CommentForm()
form.fields['name'].widget.attrs.update({'class': 'special'})
如果要将属性添加到所有表格中,则可以这样做:
class CommentForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'})
url = forms.URLField()
comment = forms.CharField()
编辑:
作为课堂定义的一部分更新也有效(尽管我不太确定为什么要这样做(。
class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField()
name.widget.attrs.update({'foo':'bar'})
>>> form = CommentForm()
>>> form.fields['name'].widget.attrs
{'foo': 'bar'}