django形成错误.在没有任何html标签的情况下获取错误

Nun*_*147 6 django django-forms

我想在我的模板上获取非html版本中表单的错误.

默认情况下,错误是<ul class="errorlist">我要避免的总结.

无论如何要做到这一点没有大规模的代码更改?

Ada*_*eod 16

Django 1.7中有两种新方法也可用于解决此问题:

Form.errors.as_data()

>>> f.errors.as_data()
{'sender': [ValidationError(['Enter a valid email address.'])],
'subject': [ValidationError(['This field is required.'])]}
Run Code Online (Sandbox Code Playgroud)

Form.errors.as_json()

>>> f.errors.as_json()
{"sender": [{"message": "Enter a valid email address.", "code": "invalid"}],
"subject": [{"message": "This field is required.", "code": "required"}]}
Run Code Online (Sandbox Code Playgroud)


Bur*_*lid 6

表单文档部分中的此部分包含所有详细信息,即此代码段:

{% if form.subject.errors %}
    <ol>
    {% for error in form.subject.errors %}
        <li><strong>{{ error|escape }}</strong></li>
    {% endfor %}
    </ol>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

替换form为您在模板中调用表单类的任何内容.在此示例中,subject是表单中的字段.如果您想要一个单独的部分来总结所有错误,只需循环遍历字段:

{% if form.errors %}
   {% for field in form %}
      {% for error in field.errors %}
          {{ error|escape }}
      {% endfor %}
   {% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

  • 你在代码中有一个拼写错误。{% if form.error %} -&gt; {% if form.errors %} (2认同)