summaryrefslogtreecommitdiff
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 12:05:24 +0200
commitbdfad5731924e02aae01d799632e8fcdcbd588fd (patch)
tree0e8130361d58265ce5dccf49065864147abd35b8
parent714d7cb41521d5da03f437814112dfb6ce873f34 (diff)
[3.1.x] Refs #31657 -- Added test for ordering by self-referential ForeignKeys.
Backport of c1f7de8acc187a3899f7f3cda47edbc2f4142d7d from master
-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')), [