1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Refs #31657 -- Added test for ordering by self-referential ForeignKeys.

This commit is contained in:
Hasan Ramezani 2020-06-10 11:10:15 +02:00 committed by Mariusz Felisiak
parent a59de6e89e
commit c1f7de8acc
2 changed files with 12 additions and 0 deletions

View File

@ -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',)

View File

@ -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')), [