Par*_*and 93 django django-forms
在form.Form验证用户输入值后,我将它们传递给单独的(外部)进程以进行进一步处理.此外部进程可能会在值中发现更多错误.
有没有办法将这些错误注入已经验证的表单中,以便通过常用的表单错误显示方法显示它们(或者有更好的替代方法)?
一个建议是在表单验证中包含外部处理,这不是理想的,因为外部流程不仅仅需要验证.
rst*_*t85 103
对于Django 1.7+,您应该使用form.add_error()而不是form._errors直接访问.
文档:https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error
Joh*_*kin 88
Form._errors可以像标准字典一样对待.它被认为是使用ErrorList该类的好方法,并将错误附加到现有列表:
from django.forms.utils import ErrorList
errors = form._errors.setdefault("myfield", ErrorList())
errors.append(u"My error here")
Run Code Online (Sandbox Code Playgroud)
如果要添加非字段错误,请使用django.forms.forms.NON_FIELD_ERRORS(默认为"__all__")而不是"myfield".
Jon*_*nan 14
您可以_errors直接向表单的属性添加其他错误详细信息:
https://docs.djangoproject.com/en/1.5/ref/forms/validation/#described-later https://docs.djangoproject.com/en/1.6/ref/forms/validation/#modifying-field-errors
Muh*_*eed 10
将错误添加到特定字段:
form.add_error('fieldName', 'error description')
Run Code Online (Sandbox Code Playgroud)
**向非字段添加错误**
form.add_error(None, 'error description')
#Only pass None instead of field name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32904 次 |
| 最近记录: |