mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[3.1.x] Refs #31657 -- Added test for ordering by self-referential ForeignKeys.
Backport of c1f7de8acc from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							714d7cb415
						
					
				
				
					commit
					bdfad57319
				
			| @@ -18,6 +18,7 @@ from django.db import models | |||||||
|  |  | ||||||
| class Author(models.Model): | class Author(models.Model): | ||||||
|     name = models.CharField(max_length=63, null=True, blank=True) |     name = models.CharField(max_length=63, null=True, blank=True) | ||||||
|  |     editor = models.ForeignKey('self', models.CASCADE, null=True) | ||||||
|  |  | ||||||
|     class Meta: |     class Meta: | ||||||
|         ordering = ('-pk',) |         ordering = ('-pk',) | ||||||
|   | |||||||
| @@ -343,6 +343,17 @@ class OrderingTests(TestCase): | |||||||
|             attrgetter("headline") |             attrgetter("headline") | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|  |     def test_order_by_self_referential_fk(self): | ||||||
|  |         self.a1.author = Author.objects.create(editor=self.author_1) | ||||||
|  |         self.a1.save() | ||||||
|  |         self.a2.author = Author.objects.create(editor=self.author_2) | ||||||
|  |         self.a2.save() | ||||||
|  |         self.assertQuerysetEqual( | ||||||
|  |             Article.objects.filter(author__isnull=False).order_by('author__editor'), | ||||||
|  |             ['Article 2', 'Article 1'], | ||||||
|  |             attrgetter('headline'), | ||||||
|  |         ) | ||||||
|  |  | ||||||
|     def test_order_by_f_expression(self): |     def test_order_by_f_expression(self): | ||||||
|         self.assertQuerysetEqual( |         self.assertQuerysetEqual( | ||||||
|             Article.objects.order_by(F('headline')), [ |             Article.objects.order_by(F('headline')), [ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user