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 1.7+ form.add_error()
의 경우 form._errors
직접 액세스 하는 대신 사용해야 합니다 .
문서 : https://docs.djangoproject.com/en/stable/ref/forms/api/#django.forms.Form.add_error
답변
추가 오류 세부 정보를 양식의 _errors
속성에 직접 추가 할 수 있습니다 .
https://docs.djangoproject.com/en/1.5/ref/forms/validation/#written-later
https://docs.djangoproject.com/en/1.6/ref/forms/validation/#modifying-field-errors
답변
특정 필드에 오류 추가 :
form.add_error('fieldName', 'error description')
** 비 필드에 오류 추가 **
form.add_error(None, 'error description')
#Only pass None instead of field name