mirror of https://github.com/django/django.git
Refs #29095 -- Added test for using QuerySet.count() with window expressions ordered by related fields.
Fixed in 3f32154f40
.
This commit is contained in:
parent
227d0c7365
commit
33ec01caaf
|
@ -1,12 +1,17 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class Classification(models.Model):
|
||||
code = models.CharField(max_length=10)
|
||||
|
||||
|
||||
class Employee(models.Model):
|
||||
name = models.CharField(max_length=40, blank=False, null=False)
|
||||
salary = models.PositiveIntegerField()
|
||||
department = models.CharField(max_length=40, blank=False, null=False)
|
||||
hire_date = models.DateField(blank=False, null=False)
|
||||
age = models.IntegerField(blank=False, null=False)
|
||||
classification = models.ForeignKey('Classification', on_delete=models.CASCADE, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return '{}, {}, {}, {}'.format(self.name, self.department, self.salary, self.hire_date)
|
||||
|
|
|
@ -537,6 +537,14 @@ class WindowFunctionTests(TestCase):
|
|||
('Brown', 53000, 'Sales', datetime.date(2009, 9, 1), 108000),
|
||||
], transform=lambda row: (row.name, row.salary, row.department, row.hire_date, row.sum))
|
||||
|
||||
def test_related_ordering_with_count(self):
|
||||
qs = Employee.objects.annotate(department_sum=Window(
|
||||
expression=Sum('salary'),
|
||||
partition_by=F('department'),
|
||||
order_by=['classification__code'],
|
||||
))
|
||||
self.assertEqual(qs.count(), 12)
|
||||
|
||||
@skipUnlessDBFeature('supports_frame_range_fixed_distance')
|
||||
def test_range_n_preceding_and_following(self):
|
||||
qs = Employee.objects.annotate(sum=Window(
|
||||
|
|
Loading…
Reference in New Issue