diff options
author | Patrik Sletmo <patrik.sletmo@gmail.com> | 2018-12-11 20:41:21 +0100 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2019-01-01 10:40:22 -0500 |
commit | 14e2b1b065085c1d2d3e94ebaeefe25e12595a00 (patch) | |
tree | 48931fa81c56ba88cbf9c27058825244f3267b4d /tests/model_formsets_regress | |
parent | 02c07be95c47efaab9da7422c33ee76142f11336 (diff) | |
download | django-14e2b1b065085c1d2d3e94ebaeefe25e12595a00.tar.gz |
Fixed #29981 -- Fixed inline formsets with a OnetoOneField primary key that uses to_field.
Diffstat (limited to 'tests/model_formsets_regress')
-rw-r--r-- | tests/model_formsets_regress/models.py | 9 | ||||
-rw-r--r-- | tests/model_formsets_regress/tests.py | 12 |
2 files changed, 19 insertions, 2 deletions
diff --git a/tests/model_formsets_regress/models.py b/tests/model_formsets_regress/models.py index 29d1194bc2..d0f4532a04 100644 --- a/tests/model_formsets_regress/models.py +++ b/tests/model_formsets_regress/models.py @@ -16,6 +16,15 @@ class UserProfile(models.Model): about = models.TextField() +class UserPreferences(models.Model): + user = models.OneToOneField( + User, models.CASCADE, + to_field='username', + primary_key=True, + ) + favorite_number = models.IntegerField() + + class ProfileNetwork(models.Model): profile = models.ForeignKey(UserProfile, models.CASCADE, to_field="user") network = models.IntegerField() diff --git a/tests/model_formsets_regress/tests.py b/tests/model_formsets_regress/tests.py index fb575c2f5e..0f86bbdb06 100644 --- a/tests/model_formsets_regress/tests.py +++ b/tests/model_formsets_regress/tests.py @@ -8,8 +8,8 @@ from django.forms.utils import ErrorDict, ErrorList from django.test import TestCase from .models import ( - Host, Manager, Network, ProfileNetwork, Restaurant, User, UserProfile, - UserSite, + Host, Manager, Network, ProfileNetwork, Restaurant, User, UserPreferences, + UserProfile, UserSite, ) @@ -171,6 +171,14 @@ class InlineFormsetTests(TestCase): # Testing the inline model's relation self.assertEqual(formset[0].instance.user_id, "guido") + def test_inline_model_with_primary_to_field(self): + """An inline model with a OneToOneField with to_field & primary key.""" + FormSet = inlineformset_factory(User, UserPreferences, exclude=('is_superuser',)) + user = User.objects.create(username='guido', serial=1337) + UserPreferences.objects.create(user=user, favorite_number=10) + formset = FormSet(instance=user) + self.assertEqual(formset[0].fields['user'].initial, '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 |