Inject errors into already validated form?

后端 未结 4 1342
梦如初夏
梦如初夏 2020-12-12 15:55

After my form.Form validates the user input values I pass them to a separate (external) process for further processing. This external process can potentially fi

相关标签:
4条回答
  • 2020-12-12 16:26

    Form._errors can be treated like a standard dictionary. It's considered good form to use the ErrorList class, and to append errors to the existing list:

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

    And if you want to add non-field errors, use django.forms.forms.NON_FIELD_ERRORS (defaults to "__all__") instead of "myfield".

    0 讨论(0)
  • 2020-12-12 16:36

    For Django 1.7+, you should use form.add_error() instead of accessing form._errors directly.

    Documentation: https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error

    0 讨论(0)
  • 2020-12-12 16:37

    Add error to specific field :

    form.add_error('fieldName', 'error description')
    

    **Add error to non fields **

    form.add_error(None, 'error description')
    #Only pass None instead of field name
    
    0 讨论(0)
  • 2020-12-12 16:42

    You can add additional error details to the form's _errors attribute directly:

    https://docs.djangoproject.com/en/1.5/ref/forms/validation/#described-later https://docs.djangoproject.com/en/1.6/ref/forms/validation/#modifying-field-errors

    0 讨论(0)
提交回复
热议问题