在Django 文档中,验证相互依赖的字段的建议方法是在表单的clean()
方法中。这是有道理的,但我正在处理的问题是如何通知视图哪些字段导致了问题。
当只有一个领域失败时,我可以这样检查:
for field in form:
if field.errors:
# I know exactly in what field is the problem
但如果错误来自clean()
方法,我得到的只是错误消息:
if form.errors:
for error in form.errors:
# I know there's a problem, and I got an error message,
# but I don't know what are the fields that cause it.
想想典型的注册表单,您必须写两次电子邮件和两次密码以避免拼写错误。例如,如果两个密码字段的值不同,我想更改它们的 CSS 类,但在视图中,我没有引用导致问题的小部件。clean()
我拥有的唯一信息是表单方法中的 ValidationError 引发的错误消息。我如何知道问题出在密码字段还是电子邮件字段?而且我想解析该错误消息不是要走的路。