From 65a1055a36318ff4e21ffeb7c3dd62fa81892269 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 19 Sep 2015 14:23:55 +0200 Subject: Fixed #25431 -- Readded inline foreign keys to modelformset instances Too much field exclusions in form's construct_instance() in _post_clean() could lead to some unexpected missing ForeignKey values. Fixes a regression from 45e049937. Refs #13776. --- django/forms/models.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'django/forms') diff --git a/django/forms/models.py b/django/forms/models.py index 0fba08855f..ac8bd1c860 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -376,6 +376,11 @@ class BaseModelForm(BaseForm): exclude = self._get_validation_exclusions() + try: + self.instance = construct_instance(self, self.instance, opts.fields, exclude) + except ValidationError as e: + self._update_errors(e) + # Foreign Keys being used to represent inline relationships # are excluded from basic field value validation. This is for two # reasons: firstly, the value may not be supplied (#12507; the @@ -387,11 +392,6 @@ class BaseModelForm(BaseForm): if isinstance(field, InlineForeignKeyField): exclude.append(name) - try: - self.instance = construct_instance(self, self.instance, opts.fields, exclude) - except ValidationError as e: - self._update_errors(e) - try: self.instance.full_clean(exclude=exclude, validate_unique=False) except ValidationError as e: -- cgit v1.3