在 django 中将 css 类添加到验证错误的字段
Posted
技术标签:
【中文标题】在 django 中将 css 类添加到验证错误的字段【英文标题】:Adding css class to field on validation error in django 【发布时间】:2011-06-18 09:19:24 【问题描述】:我正在使用 Django 的模型形式,它非常好。如果存在与之相关的验证错误,我如何突出显示实际的文本框(例如边框:红色)。基本上我想要的是在字段出现验证错误时添加一个类(错误)。
【问题讨论】:
如何在模板中生成表单 html?一次打印整个表单对象还是逐个字段打印? 我正在循环遍历表单元素并分别打印错误、字段和标签。 【参考方案1】:定义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'
【讨论】:
这为表单字段的容器提供了类。如果我想为表单字段本身分配类怎么办? 在这种情况下使用自定义表单模板 @Myth: $('.error').find(':input').css('background-color', 'pink');【参考方案2】:扩展 errx 的答案。
添加 CSS
.error input, .error select
border: 2px red solid;
专门突出显示该字段
【讨论】:
【参考方案3】:试试这个?
self.fields['field_you_want_to_add_error'].widget.attrs['class'] = "error"
【讨论】:
【参考方案4】:回答原来的问题。
您可以将所需的类添加到视图中您提交表单并执行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
)
【讨论】:
【参考方案5】:模板:
<div style="color:red"> userForm.short_description.errors.as_text </div>
【讨论】:
以上是关于在 django 中将 css 类添加到验证错误的字段的主要内容,如果未能解决你的问题,请参考以下文章
将 CSS 类添加到 django.contrib.auth.views.login 中的字段
在 MVC 2 中将 css 类添加到 Html.EditorFor
在 Django 视图中将用户/帐户表添加到 Postgres