summaryrefslogtreecommitdiff
path: root/tests/model_formsets_regress
diff options
context:
space:
mode:
authorPatrik Sletmo <patrik.sletmo@gmail.com>2018-12-11 20:41:21 +0100
committerTim Graham <timograham@gmail.com>2019-01-01 10:40:22 -0500
commit14e2b1b065085c1d2d3e94ebaeefe25e12595a00 (patch)
tree48931fa81c56ba88cbf9c27058825244f3267b4d /tests/model_formsets_regress
parent02c07be95c47efaab9da7422c33ee76142f11336 (diff)
downloaddjango-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.py9
-rw-r--r--tests/model_formsets_regress/tests.py12
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