样式 Django 表单错误消息

Style Django form error message

我正在尝试将 django 表单 defa 错误设置为红色和粗体。例如,将 "This field is required" 设为红色和粗体。我看到 error_css_class = 'error' 但它不起作用。 https://docs.djangoproject.com/en/1.5//ref/forms/api/#django.forms.Form.error_css_class 谢谢! 这是我的 models.py

class RegiForm(forms.Form):
    error_css_class = 'error'
    DateInput = partial(forms.DateInput, {'class': 'datepicker'})
    email = forms.EmailField(max_length=75)
    first_name = forms.CharField(max_length=25)
    last_name = forms.CharField(max_length=25)
    address = forms.CharField(max_length=200)

这是我的模板:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>RegistrationForm</title>
    </head>
    <body>
        <h1>Registration Form</h1>
        <form action="/login/regi/" method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>

在源代码浏览器中检查 class 名称。 您可以尝试像这样更改 class 名称:

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

只需添加此 CSS 即可更改错误消息颜色:
.errorlist { color: red; }
或者,如果您想更改字段边框颜色,则
.error input, .error select { border: 2px red solid; }

要更改 error_message 的样式:

1st:检查 error_message 的元素然后复制它的 class

第二:添加你想要的样式...

在我的例子中.... error_message 的 class 是 help-block

<style>
.help-block{color:red;
            font-weight:bold;
}
</style>

只是不要忘记将它放在您的 html 上的 {% block content %} 或 {% block body %} 中,如果您扩展了 base.html 否则...不会工作

第三:仅此而已:)

我知道这是一个老问题,但作为初学者我需要它。

您可以在

中扩展 ErrorList class

django.forms.utils

随心所欲地设置样式。 就我而言,我希望它作为 div 和 Bootstrap 警报。

所以我在 forms.py

中做了这个
class DivErrorList(ErrorList):
    def __str__(self):
        return self.as_divs()

    def as_divs(self):
        if not self:
            return ''
        return '<div class="errorlist">%s</div>' % ''.join(['<div class="error alert alert-danger mt-1">%s</div>' % e for e in self])

并在 views.py

form = AddToCartForm(error_class=DivErrorList)

查看文档:customizing-the-error-list-format