summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-07-08 15:58:14 -0400
committerTim Graham <timograham@gmail.com>2014-07-10 17:36:04 -0400
commit736e289445aea5083da04ddd8734c3ff20310408 (patch)
tree29e4b29cb3046d9975aabc254a273922e0432431 /django/forms
parent3e13c1d9b174cb6fc1a97f6fde418150e0968bdd (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.py6
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