summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
Diffstat (limited to 'django/forms')
-rw-r--r--django/forms/models.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 7648d97da4..fe8a67ed2b 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -958,8 +958,12 @@ class BaseInlineFormSet(BaseModelFormSet):
kwargs = {
'label': getattr(form.fields.get(name), 'label', capfirst(self.fk.verbose_name))
}
- if self.fk.remote_field.field_name != self.fk.remote_field.model._meta.pk.name:
- kwargs['to_field'] = self.fk.remote_field.field_name
+
+ # The InlineForeignKeyField assumes that the foreign key relation is
+ # based on the parent model's pk. If this isn't the case, set to_field
+ # to correctly resolve the initial form value.
+ if self.fk.remote_field.field_name != self.fk.remote_field.model._meta.pk.name:
+ kwargs['to_field'] = self.fk.remote_field.field_name
# If we're adding a new object, ignore a parent's auto-generated key
# as it will be regenerated on the save request.