mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-31 07:57:55 +03:00 
			
		
		
		
	can't nest unique_together relations
This commit is contained in:
		
							parent
							
								
									ab7cb44bc5
								
							
						
					
					
						commit
						805a915e7c
					
				|  | @ -316,6 +316,13 @@ class RelationalModel(models.Model): | ||||||
|     through = models.ManyToManyField(ThroughTargetModel, through=Supplementary, related_name='reverse_through') |     through = models.ManyToManyField(ThroughTargetModel, through=Supplementary, related_name='reverse_through') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | class UniqueTogetherModel(models.Model): | ||||||
|  |     foreign_key = models.ForeignKey(ForeignKeyTargetModel, related_name='unique_foreign_key') | ||||||
|  |     one_to_one = models.OneToOneField(OneToOneTargetModel, related_name='unique_one_to_one') | ||||||
|  |     class Meta: | ||||||
|  |         unique_together = ("foreign_key", "one_to_one") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| class TestRelationalFieldMappings(TestCase): | class TestRelationalFieldMappings(TestCase): | ||||||
|     def test_pk_relations(self): |     def test_pk_relations(self): | ||||||
|         class TestSerializer(serializers.ModelSerializer): |         class TestSerializer(serializers.ModelSerializer): | ||||||
|  | @ -395,6 +402,25 @@ class TestRelationalFieldMappings(TestCase): | ||||||
|         """) |         """) | ||||||
|         self.assertEqual(unicode_repr(TestSerializer()), expected) |         self.assertEqual(unicode_repr(TestSerializer()), expected) | ||||||
| 
 | 
 | ||||||
|  |     def test_nested_unique_together_relations(self): | ||||||
|  |         class TestSerializer(serializers.HyperlinkedModelSerializer): | ||||||
|  |             class Meta: | ||||||
|  |                 model = UniqueTogetherModel | ||||||
|  |                 depth = 1 | ||||||
|  |         expected = dedent(""" | ||||||
|  |             TestSerializer(): | ||||||
|  |                 url = HyperlinkedIdentityField(view_name='uniquetogethermodel-detail') | ||||||
|  |                 foreign_key = NestedSerializer(read_only=True): | ||||||
|  |                     url = HyperlinkedIdentityField(view_name='foreignkeytargetmodel-detail') | ||||||
|  |                     name = CharField(max_length=100) | ||||||
|  |                 one_to_one = NestedSerializer(read_only=True): | ||||||
|  |                     url = HyperlinkedIdentityField(view_name='onetoonetargetmodel-detail') | ||||||
|  |                     name = CharField(max_length=100) | ||||||
|  |                 class Meta: | ||||||
|  |                     validators = [<UniqueTogetherValidator(queryset=UniqueTogetherModel.objects.all(), fields=('foreign_key', 'one_to_one'))>] | ||||||
|  |         """) | ||||||
|  |         self.assertEqual(unicode_repr(TestSerializer()), expected) | ||||||
|  | 
 | ||||||
|     def test_pk_reverse_foreign_key(self): |     def test_pk_reverse_foreign_key(self): | ||||||
|         class TestSerializer(serializers.ModelSerializer): |         class TestSerializer(serializers.ModelSerializer): | ||||||
|             class Meta: |             class Meta: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user