无法使用.widget.attrs.update将CSS课程添加到我的Charfield



我正在学习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'}

最新更新