def __init__(self, *args, **kwargs):
super(form, self).__init__(*args, **kwargs)
for field in self.errors:
if not field == '__all__':
# errors dict can have key __all__ for non field errors.
self.fields[field].widget.attrs['class'] = \
self.fields[field].widget.attrs.get('class', '') + 'error'
1 回答
required_css_class
似乎正在被forms.BoundField.css_classes
和forms.BaseForm._html_output
使用,仅适用于as_p
,as_table
等 .它不是常规窗口小部件呈现的一部分 .
你可以使用相同的
css_classes
方法返回你的元素的类,所以我认为最简单的解决方案是用一个元素包装<input>
并给它类{{ field.css_classes }}
,并修改你的验证选择器 .或者,这是一种将错误类入侵到错误字段的方法:
要使用
required_css_class
,您必须使用BoundField.css_classes
方法,这将涉及黑客入侵基础表单__getitem__
和__iter__
,因为BoundField是按需构建的 . 上述方法更容易 .