在Django中验证错误时向字段添加CSS类

21 投票
5 回答
22062 浏览
提问于 2025-04-16 10:56

我正在使用Django的modelform,这个工具真的很好用。如果某个输入框有验证错误,我该怎么让这个输入框变得显眼一点,比如把边框变成红色呢?简单来说,我想在字段有验证错误的时候,给它加上一个叫做“error”的样式。

5 个回答

3

在errx的回答基础上再补充一下。

添加以下CSS样式

.error input, .error select {
    border: 2px red solid;
}

这样可以特别突出这个字段

10

来回答最初的问题。

你可以在你提交表单的视图中,把想要的类添加到字段上,然后进行 form.is_valid() 的检查。虽然这样做不是最优雅的,但确实可以实现。

def submit_form(request):
    if request.method = 'POST':
        if. form.is_valid():
            # Do something with clean form data
            pass
        else:
            # Append css class to every field that contains errors.
            for field in form.errors:
                form[field].field.widget.attrs['class'] += ' my-css-class'
    return render(request, submit_form.html, {
        'form': form
    })
19

关于定义 error_css_class 这个东西怎么样呢? http://docs.djangoproject.com/en/dev/ref/forms/api/#styling-required-or-erroneous-form-rows?

class MyForm(ModelForm):
    error_css_class = 'error'

撰写回答