summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2014-07-14 21:12:40 -0300
committerRamiro Morales <cramm0@gmail.com>2014-07-14 21:12:40 -0300
commit291e837bda016d8556c2f6a4712729955a1667d0 (patch)
tree86d52a14c8f6b3a3c443ee13fa3f8cf2bdc170e6
parent4ae68f677b3348765d8649d8b57beffa18fe8d3d (diff)
[1.5.x] Revert "Fixed #13794 -- Fixed to_field usage in BaseInlineFormSet."
This reverts commit 4ae68f677b3348765d8649d8b57beffa18fe8d3d. stable/1.5.x branch is in security-fixes-only mode.
-rw-r--r--django/forms/models.py6
-rw-r--r--tests/regressiontests/model_formsets_regress/models.py9
-rw-r--r--tests/regressiontests/model_formsets_regress/tests.py36
3 files changed, 2 insertions, 49 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 36d7d45ee6..1e7888ad8e 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -736,11 +736,7 @@ 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.
- 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)
+ setattr(form.instance, self.fk.get_attname(), self.instance.pk)
return form
@classmethod
diff --git a/tests/regressiontests/model_formsets_regress/models.py b/tests/regressiontests/model_formsets_regress/models.py
index f907207f20..f94ad51929 100644
--- a/tests/regressiontests/model_formsets_regress/models.py
+++ b/tests/regressiontests/model_formsets_regress/models.py
@@ -10,15 +10,6 @@ class UserSite(models.Model):
user = models.ForeignKey(User, to_field="username")
data = models.IntegerField()
-class UserProfile(models.Model):
- user = models.ForeignKey(User, unique=True, to_field="username")
- about = models.TextField()
-
-class ProfileNetwork(models.Model):
- profile = models.ForeignKey(UserProfile, to_field="user")
- network = models.IntegerField()
- identifier = models.IntegerField()
-
class Place(models.Model):
name = models.CharField(max_length=50)
diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py
index 29d3be95c2..8cadcfc409 100644
--- a/tests/regressiontests/model_formsets_regress/tests.py
+++ b/tests/regressiontests/model_formsets_regress/tests.py
@@ -7,10 +7,7 @@ from django.forms.models import modelform_factory, inlineformset_factory, modelf
from django.test import TestCase
from django.utils import six
-from .models import (
- User, UserSite, UserProfile, ProfileNetwork, Restaurant, Manager, Network,
- Host,
-)
+from .models import User, UserSite, Restaurant, Manager, Network, Host
class InlineFormsetTests(TestCase):
@@ -157,37 +154,6 @@ class InlineFormsetTests(TestCase):
else:
self.fail('Errors found on formset:%s' % form_set.errors)
- def test_inline_model_with_to_field(self):
- """
- #13794 --- An inline model with a to_field of a formset with instance
- has working relations.
- """
- FormSet = inlineformset_factory(User, UserSite, exclude=('is_superuser',))
-
- user = User.objects.create(username="guido", serial=1337)
- UserSite.objects.create(user=user, data=10)
- formset = FormSet(instance=user)
-
- # Testing the inline model's relation
- self.assertEqual(formset[0].instance.user_id, "guido")
-
- def test_inline_model_with_to_field_to_rel(self):
- """
- #13794 --- An inline model with a to_field to a related field of a
- formset with instance has working relations.
- """
- FormSet = inlineformset_factory(UserProfile, ProfileNetwork, exclude=[])
-
- user = User.objects.create(username="guido", serial=1337, pk=1)
- self.assertEqual(user.pk, 1)
- profile = UserProfile.objects.create(user=user, about="about", pk=2)
- self.assertEqual(profile.pk, 2)
- ProfileNetwork.objects.create(profile=profile, network=10, identifier=10)
- formset = FormSet(instance=profile)
-
- # Testing the inline model's relation
- self.assertEqual(formset[0].instance.profile_id, 1)
-
def test_formset_with_none_instance(self):
"A formset with instance=None can be created. Regression for #11872"
Form = modelform_factory(User)