summaryrefslogtreecommitdiff
path: root/tests/ordering
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2020-06-10 11:10:15 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-06-10 11:11:20 +0200
commitc1f7de8acc187a3899f7f3cda47edbc2f4142d7d (patch)
tree018a7be76baa39eb089a80ba5b9abff47b1a2f4a /tests/ordering
parenta59de6e89e8dc1f3e71c9a5a5bbceb373ea5247e (diff)
downloaddjango-c1f7de8acc187a3899f7f3cda47edbc2f4142d7d.tar.gz
Refs #31657 -- Added test for ordering by self-referential ForeignKeys.
Diffstat (limited to 'tests/ordering')
-rw-r--r--tests/ordering/models.py1
-rw-r--r--tests/ordering/tests.py11
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')), [