将错误注入已validation的表单中?
在我的form.Form
validation用户input值后,我将它们传递给一个单独的(外部)进程进行进一步处理。 这个外部过程可能会在值中find更多的错误。
有没有办法将这些错误注入已经过validation的表单中,以便通过通常的表单错误显示方法(或者是否有更好的替代方法)来显示这些错误?
一个build议是在表单validation中包含外部处理,这是不理想的,因为外部处理不仅仅是validation。
Form._errors
可以像标准字典一样对待。 使用ErrorList
类被认为是很好的forms,并且将错误追加到现有的列表中:
from django.forms.util import ErrorList errors = form._errors.setdefault("myfield", ErrorList()) errors.append(u"My error here")
如果要添加非字段错误,请使用django.forms.forms.NON_FIELD_ERRORS
(默认为"__all__"
)而不是"myfield"
。
对于Django 1.7+,你应该使用form.add_error()
而不是直接访问form._errors
。
文档: https : //docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error