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)