mirror of
https://github.com/django/django.git
synced 2025-08-03 10:34:04 +00:00
Fixed #31614 -- Fixed aliases ordering by OrderBy() expressions of combined queryset.
This commit is contained in:
parent
51ad767d0b
commit
2aac176e86
2 changed files with 20 additions and 2 deletions
|
@ -123,6 +123,21 @@ class QuerySetSetOperationTests(TestCase):
|
|||
qs2 = Number.objects.filter(num__gte=2, num__lte=3)
|
||||
self.assertNumbersEqual(qs1.union(qs2).order_by(F('num').desc()), [3, 2, 1, 0])
|
||||
|
||||
def test_ordering_by_f_expression_and_alias(self):
|
||||
qs1 = Number.objects.filter(num__lte=1).values(alias=F('other_num'))
|
||||
qs2 = Number.objects.filter(num__gte=2, num__lte=3).values(alias=F('other_num'))
|
||||
self.assertQuerysetEqual(
|
||||
qs1.union(qs2).order_by(F('alias').desc()),
|
||||
[10, 9, 8, 7],
|
||||
operator.itemgetter('alias'),
|
||||
)
|
||||
Number.objects.create(num=-1)
|
||||
self.assertQuerysetEqual(
|
||||
qs1.union(qs2).order_by(F('alias').desc(nulls_last=True)),
|
||||
[10, 9, 8, 7, None],
|
||||
operator.itemgetter('alias'),
|
||||
)
|
||||
|
||||
def test_union_with_values(self):
|
||||
ReservedName.objects.create(name='a', order=2)
|
||||
qs1 = ReservedName.objects.all()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue