@@ -316,6 +316,13 @@ class RelationalModel(models.Model):
316
316
through = models .ManyToManyField (ThroughTargetModel , through = Supplementary , related_name = 'reverse_through' )
317
317
318
318
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
+
319
326
class TestRelationalFieldMappings (TestCase ):
320
327
def test_pk_relations (self ):
321
328
class TestSerializer (serializers .ModelSerializer ):
@@ -395,6 +402,25 @@ class Meta:
395
402
""" )
396
403
self .assertEqual (unicode_repr (TestSerializer ()), expected )
397
404
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
+
398
424
def test_pk_reverse_foreign_key (self ):
399
425
class TestSerializer (serializers .ModelSerializer ):
400
426
class Meta :
0 commit comments