在自定义模板中使用Django表单字段呈现必需和错误类

我需要将模板中的字段作为标记吐出的一部分呈现必需和错误属性.我知道这可以通过在自动生成布局时使用form.as_p等来完成.

但是,我对表单有一个复杂的2列布局.是否可以包含required_css_class =’required’,它是表单类的一部分,同时为各个字段吐出html?

我需要这样做,因为我想从生成的html驱动jquery验证,而无需额外的工作.

谢谢

forms.BoundField.css_classes和forms.BaseForm._html_output似乎正在使用required_css_class,它仅用于as_p,as_table等.

它不是常规窗口小部件呈现的一部分.

您可以使用相同的css_classes方法返回元素的类,因此我认为最简单的解决方案是包装< input>使用一个元素并赋予该类{{field.css_classes}},并修改您的验证选择器.

或者,这是一种将错误类入侵到错误字段的方法:

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'

要使用required_css_class,您必须使用BoundField.css_classes方法,这将涉及入侵基础表单__getitem__和__iter__,因为BoundField是按需构造的.上述方法更容易.

相关文章
相关标签/搜索