【发布时间】:2013-09-17 20:33:37
【问题描述】:
在 Django 文档中https://docs.djangoproject.com/en/dev/ref/forms/validation/#raising-validationerror 说,在引发 ValidationError 异常的同时提供错误代码是一种好习惯。
# Good
ValidationError(_('Invalid value'), code='invalid')
# Bad
ValidationError(_('Invalid value'))
我的应用程序中有 API,我正在使用表单来验证输入数据。
如果表单无效,我想获取这些错误代码(不是错误消息)。
于是我查看了BaseForm的_clean_fields方法的源码:
https://github.com/django/django/blob/master/django/forms/forms.py#L278
except ValidationError as e:
self._errors[name] = self.error_class(e.messages)
if name in self.cleaned_data:
del self.cleaned_data[name]
据我了解,此参数(self.code)未在任何地方传递,并且在表单验证后无法获取。
谁能解释一下使用这个错误代码的目的是什么?
【问题讨论】:
-
似乎这是一个新增功能 - 请参阅“1.6 中的新功能”的注释,它甚至还没有发布 - 所以它可能还没有在所有地方完全实现。
-
这个字段也出现在 1.5 中。看起来你是对的,它会在未来的版本中使用。
标签: django django-forms