在my form.Form验证用户输入值后,我将其传递给一个单独的(外部)进程进行进一步处理.这个外部过程可能会在值中发现更多错误.

有没有一种方法可以将这些错误注入到已经验证的表单中,以便可以通过通常的表单错误显示方法显示它们(或者是否有更好的替代方法)?

一种建议是将外部处理包括在表单验证中,这并不理想,因为外部流程所做的远不止是验证.

推荐答案

Form._errors可以被当作标准字典对待.使用ErrorList类并将错误附加到现有列表被认为是很好的形式:

from django.forms.utils import ErrorList
errors = form._errors.setdefault("myfield", ErrorList())
errors.append(u"My error here")

如果要添加非字段错误,请使用django.forms.forms.NON_FIELD_ERRORS(默认为"__all__")而不是"myfield".

Django相关问答推荐

Django为不同应用程序发出信号

当使用django-tinymce时,我在哪里指定referer?

情节主题更改问题

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

Django 按月分组并按月显示在模板中

如何在视图中的 Django 重定向末尾附加字符串?

DeleteView 中的success_message 未显示

使用 Vagrant 进行端口转发时连接重置

什么时候在 django rest 框架序列化程序中调用创建和更新?

使用基于类的 UpdateView 在 Django 中更新用户模型

删除所有表的django命令是什么?

在 django 模板中遇到 user.is_authenticated 问题

Django中视图的多个decorator :执行顺序

URL命名空间的一个真实例子

Django REST Framework 和 FileField 绝对 url

UnicodeEncodeError:ascii编解码器无法编码字符

在 django 中是否有生成 settings.SECRET_KEY 的功能?

Celery - 在一台服务器上运行不同的工作人员

Django:AppRegistryNotReady()

如何使用 Django/nginx 部署仅限 HTTPS 的站点?