From 429680146304c44e92ecff655280bc464121f769 Mon Sep 17 00:00:00 2001 From: Jason Hoos Date: Fri, 5 Jun 2015 15:04:24 -0500 Subject: [1.8.x] Fixed #24958 -- Fixed inline forms using UUID-PK parents with auto-PK children. Backport of a50b66da30320887c23c73927f6b2ab41e0301bf from master --- django/forms/models.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'django/forms') diff --git a/django/forms/models.py b/django/forms/models.py index b8345d8856..08a3697cc1 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -922,10 +922,15 @@ class BaseInlineFormSet(BaseModelFormSet): if self.fk.rel.field_name != self.fk.rel.to._meta.pk.name: kwargs['to_field'] = self.fk.rel.field_name - # If we're adding a new object, ignore a parent's auto-generated pk + # If we're adding a new object, ignore a parent's auto-generated key # as it will be regenerated on the save request. - if self.instance._state.adding and form._meta.model._meta.pk.has_default(): - self.instance.pk = None + if self.instance._state.adding: + if kwargs.get('to_field') is not None: + to_field = self.instance._meta.get_field(kwargs['to_field']) + else: + to_field = self.instance._meta.pk + if to_field.has_default(): + setattr(self.instance, to_field.attname, None) form.fields[name] = InlineForeignKeyField(self.instance, **kwargs) -- cgit v1.3