Skip to content

Commit 805a915

Browse files
committed
can't nest unique_together relations
1 parent ab7cb44 commit 805a915

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/test_model_serializer.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,13 @@ class RelationalModel(models.Model):
316316
through = models.ManyToManyField(ThroughTargetModel, through=Supplementary, related_name='reverse_through')
317317

318318

319+
class UniqueTogetherModel(models.Model):
320+
foreign_key = models.ForeignKey(ForeignKeyTargetModel, related_name='unique_foreign_key')
321+
one_to_one = models.OneToOneField(OneToOneTargetModel, related_name='unique_one_to_one')
322+
class Meta:
323+
unique_together = ("foreign_key", "one_to_one")
324+
325+
319326
class TestRelationalFieldMappings(TestCase):
320327
def test_pk_relations(self):
321328
class TestSerializer(serializers.ModelSerializer):
@@ -395,6 +402,25 @@ class Meta:
395402
""")
396403
self.assertEqual(unicode_repr(TestSerializer()), expected)
397404

405+
def test_nested_unique_together_relations(self):
406+
class TestSerializer(serializers.HyperlinkedModelSerializer):
407+
class Meta:
408+
model = UniqueTogetherModel
409+
depth = 1
410+
expected = dedent("""
411+
TestSerializer():
412+
url = HyperlinkedIdentityField(view_name='uniquetogethermodel-detail')
413+
foreign_key = NestedSerializer(read_only=True):
414+
url = HyperlinkedIdentityField(view_name='foreignkeytargetmodel-detail')
415+
name = CharField(max_length=100)
416+
one_to_one = NestedSerializer(read_only=True):
417+
url = HyperlinkedIdentityField(view_name='onetoonetargetmodel-detail')
418+
name = CharField(max_length=100)
419+
class Meta:
420+
validators = [<UniqueTogetherValidator(queryset=UniqueTogetherModel.objects.all(), fields=('foreign_key', 'one_to_one'))>]
421+
""")
422+
self.assertEqual(unicode_repr(TestSerializer()), expected)
423+
398424
def test_pk_reverse_foreign_key(self):
399425
class TestSerializer(serializers.ModelSerializer):
400426
class Meta:

0 commit comments

Comments
 (0)