From 681df1aeafb30092430157f7977f713e1ce234ca Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Fri, 8 May 2015 18:33:20 +1000 Subject: [PATCH] Fixed #24771 -- Simplified ModelForm._post_clean() This code added in 45e049937d2564d11035827ca9a9221b86215e45 is no longer necessary to pass the model_formsets_regress tests as of 5e2c4a4bd1f86962842783e0b42ada7b9c14c247. --- django/forms/models.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/django/forms/models.py b/django/forms/models.py index 1ea0dea58b..3c3f1e29ff 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -411,10 +411,6 @@ class BaseModelForm(BaseForm): opts = self._meta exclude = self._get_validation_exclusions() - # a subset of `exclude` which won't have the InlineForeignKeyField - # if we're adding a new object since that value doesn't exist - # until after the new instance is saved to the database. - construct_instance_exclude = list(exclude) # Foreign Keys being used to represent inline relationships # are excluded from basic field value validation. This is for two @@ -425,12 +421,10 @@ class BaseModelForm(BaseForm): # so this can't be part of _get_validation_exclusions(). for name, field in self.fields.items(): if isinstance(field, InlineForeignKeyField): - if self.cleaned_data.get(name) is not None and self.cleaned_data[name]._state.adding: - construct_instance_exclude.append(name) exclude.append(name) # Update the model instance with self.cleaned_data. - self.instance = construct_instance(self, self.instance, opts.fields, construct_instance_exclude) + self.instance = construct_instance(self, self.instance, opts.fields, exclude) try: self.instance.full_clean(exclude=exclude, validate_unique=False)