Django-form Clean()和字段错误

Django-form Clean()和字段错误,django,validation,django-forms,django-validation,Django,Validation,Django Forms,Django Validation,我正在尝试在表单clean()中设置字段错误,目前正在执行以下操作: self._errors['address'] = self._errors.get('address', ErrorList()) self._errors['address'].append(_(u'Please specify an address.')) 有没有更好的方法,如果可能的话,更短的方法 标准方法是引发验证错误(消息) 在您的案例中,将特定于字段的验证移动到clean_()方法、clean_地址验证错误会将

我正在尝试在表单clean()中设置字段错误,目前正在执行以下操作:

self._errors['address'] = self._errors.get('address', ErrorList())
self._errors['address'].append(_(u'Please specify an address.'))
有没有更好的方法,如果可能的话,更短的方法

  • 标准方法是
    引发验证错误(消息)
  • 在您的案例中,将特定于字段的验证移动到
    clean_()方法、
    clean_地址<此方法中引发的代码>验证错误
    会将错误消息附加到特定字段。从
    clean()
    中引发的一个问题通常会归因于模型

  • 也许这对你有帮助。通常,您最好重写clean,在函数内部,您可以执行以下操作

    如果您想引发特定于表单的错误,可以这样做

    self._errors["field"] = ErrorList([u"Error"])
    
    这是为了确保您得到错误类

    如果您有一个非字段错误,您可以像这样简单地引发一个验证错误

    raise forms.ValidationError(_("Error"))
    

    希望这有帮助

    Django 1.7中新增的是
    表单。添加错误(字段、消息)


    我目前正在使用
    clean()
    来验证与多个字段相关的某些内容——我对Django和Python一般来说都是新手,我想知道是否有更好/更短的方法来检查/创建/附加特定于字段的错误。添加了项目#3,也许它描述了您需要的内容。摘自django的
    clean_字段的内部实现
    ,您能详细介绍一下您的建议吗#3?这对我不起作用。我可以看出,他们接受这样的错误字典,但实际上并没有使用它。@AlexLebedev-我没有测试过你的第三个建议,但根据文档,这是不正确的,不是吗?设置特定于字段的错误时,应该将消息分配给
    self.\u errors
    。没错,我混淆了表单和模型验证#3仅适用于模型。请改用self.errors,它将返回_错误,并且不是专用的