Commit 07577a2d authored by Simon Charette's avatar Simon Charette
Browse files

Fixed #25081 -- Prevented DISTINCT ON ordering from being cleared in get().

Thanks to pdewacht for the patch.
parent 7b6d3104
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -376,7 +376,7 @@ class QuerySet(object):
        keyword arguments.
        """
        clone = self.filter(*args, **kwargs)
        if self.query.can_filter():
        if self.query.can_filter() and not self.query.distinct_fields:
            clone = clone.order_by()
        num = len(clone)
        if num == 1:
+8 −0
Original line number Diff line number Diff line
@@ -129,3 +129,11 @@ class DistinctOnTests(TestCase):
            qs, [self.p1_o2, self.p2_o1, self.p3_o1],
            lambda x: x
        )

    def test_distinct_on_get_ordering_preserved(self):
        """
        Ordering shouldn't be cleared when distinct on fields are specified.
        refs #25081
        """
        staff = Staff.objects.distinct('name').order_by('name', '-organisation').get(name='p1')
        self.assertEqual(staff.organisation, 'o2')