将错误注入已validation的表单中?

在我的form.Formvalidation用户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