diff options
author | Hasan Ramezani <hasan.r67@gmail.com> | 2020-06-10 11:10:15 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-06-10 11:11:20 +0200 |
commit | c1f7de8acc187a3899f7f3cda47edbc2f4142d7d (patch) | |
tree | 018a7be76baa39eb089a80ba5b9abff47b1a2f4a /tests/ordering | |
parent | a59de6e89e8dc1f3e71c9a5a5bbceb373ea5247e (diff) | |
download | django-c1f7de8acc187a3899f7f3cda47edbc2f4142d7d.tar.gz |
Refs #31657 -- Added test for ordering by self-referential ForeignKeys.
Diffstat (limited to 'tests/ordering')
-rw-r--r-- | tests/ordering/models.py | 1 | ||||
-rw-r--r-- | tests/ordering/tests.py | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/tests/ordering/models.py b/tests/ordering/models.py index 2efb743e44..95780c6a16 100644 --- a/tests/ordering/models.py +++ b/tests/ordering/models.py @@ -18,6 +18,7 @@ from django.db import models class Author(models.Model): name = models.CharField(max_length=63, null=True, blank=True) + editor = models.ForeignKey('self', models.CASCADE, null=True) class Meta: ordering = ('-pk',) diff --git a/tests/ordering/tests.py b/tests/ordering/tests.py index a9cc729c45..aa59b5abb5 100644 --- a/tests/ordering/tests.py +++ b/tests/ordering/tests.py @@ -343,6 +343,17 @@ class OrderingTests(TestCase): 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): self.assertQuerysetEqual( Article.objects.order_by(F('headline')), [ |