diff options
| author | Tim Graham <timograham@gmail.com> | 2014-07-08 15:58:14 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-07-10 17:36:04 -0400 |
| commit | 736e289445aea5083da04ddd8734c3ff20310408 (patch) | |
| tree | 29e4b29cb3046d9975aabc254a273922e0432431 /django/forms | |
| parent | 3e13c1d9b174cb6fc1a97f6fde418150e0968bdd (diff) | |
[1.7.x] Fixed #13794 -- Fixed to_field usage in BaseInlineFormSet.
Thanks sebastien at clarisys.fr for the report and gautier
for the patch.
Backport of 5e2c4a4bd1 from master
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/models.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/django/forms/models.py b/django/forms/models.py index effdd78238..76f5bb8197 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -877,7 +877,11 @@ class BaseInlineFormSet(BaseModelFormSet): form.data[form.add_prefix(self.fk.name)] = None # Set the fk value here so that the form can do its validation. - setattr(form.instance, self.fk.get_attname(), self.instance.pk) + fk_value = self.instance.pk + if self.fk.rel.field_name != self.fk.rel.to._meta.pk.name: + fk_value = getattr(self.instance, self.fk.rel.field_name) + fk_value = getattr(fk_value, 'pk', fk_value) + setattr(form.instance, self.fk.get_attname(), fk_value) return form @classmethod |
