Django输入元素错误css类

2024-03-29 15:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在表单验证失败时将.error类添加到输入元素(to registration app)。


Tags: toapp元素表单errorregistration
4条回答

如果要将错误CSS类放置到表单输入小部件(而不是它们的容器)中,可以从以下对象派生表单类:

class StyledErrorForm(forms.Form):
    def is_valid(self):
        ret = forms.Form.is_valid(self)
        for f in self.errors:
            self.fields[f].widget.attrs.update({'class': self.fields[f].widget.attrs.get('class', '') + ' error'})
        return ret

这可以完全通过你的模板完成。

为要测试的每个表单字段构建表单模板可以使用以下示例构造

<input type="text" class="reg-txt{% if form.fieldname.errors %} errors{% endif %}"/>

这使您无需修改view&django表单代码即可提供所需的界面。

现在很简单了——Django1.2的新特性

只需在表单类中添加一个属性即可。文档中的“new in 1.2”注释中提到了此功能,但您可以在django.forms.forms.BoundField.css_classes找到其魔力,这里是API reference,还有一个示例:

class MyForm(forms.Form):
    required_css_class = "required"
    error_css_class = "error"

相关问题 更多 >