diff options
| author | Honza Král <honza.kral@gmail.com> | 2010-01-04 00:22:13 +0000 |
|---|---|---|
| committer | Honza Král <honza.kral@gmail.com> | 2010-01-04 00:22:13 +0000 |
| commit | a7c320fea79b8750ab2a8aca84d8e8fb76d8b100 (patch) | |
| tree | 8bcdf462175d804f8cac2aa8c953333ad684e72a /django/forms | |
| parent | 23a3c08bbbed3eb30c5ecce3cd5543c99d5ce883 (diff) | |
[soc2009/model-validation] Raise UnresolvableValidationError if an error occurs on excluded field
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@12072 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/models.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py index 12cfcdbfe5..7ab70c6883 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -9,7 +9,7 @@ from django.utils.datastructures import SortedDict from django.utils.text import get_text_list, capfirst from django.utils.translation import ugettext_lazy as _, ugettext -from django.core.exceptions import ValidationError, NON_FIELD_ERRORS +from django.core.exceptions import ValidationError, NON_FIELD_ERRORS, UnresolvableValidationError from django.core.validators import EMPTY_VALUES from util import ErrorList from forms import BaseForm, get_declared_fields @@ -254,10 +254,14 @@ class BaseModelForm(BaseForm): if k in self.cleaned_data: del self.cleaned_data[k] - # what about fields that don't validate but aren't present on the form? if NON_FIELD_ERRORS in e.message_dict: raise ValidationError(e.message_dict[NON_FIELD_ERRORS]) + # there are errors on some fields not displayed in this form + if set(e.message_dict.keys()) - set(self.fields.keys() + [NON_FIELD_ERRORS]): + raise UnresolvableValidationError(e.message_dict) + + return self.cleaned_data def save(self, commit=True): |
