Commit 5cc0f5f8 authored by Anssi Kääriäinen's avatar Anssi Kääriäinen
Browse files

Made Query.clear_ordering force_empty arg mandatory

Previously it was possible to call clear_ordering without the
force_empty argument. The result was that the query was still ordered
by model's meta ordering if that was defined. By making the arg
mandatory it will be easier to spot possible errors caused by assuming
clear_ordering will remove all ordering.

Thanks to Dylan Klomparens for the suggestion. Refs #19720.
parent af2bb174
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -500,7 +500,7 @@ class QuerySet(object):
            "Cannot change a query once a slice has been taken."
        obj = self._clone()
        obj.query.set_limits(high=1)
        obj.query.clear_ordering()
        obj.query.clear_ordering(force_empty=True)
        obj.query.add_ordering('%s%s' % (direction, order_by))
        return obj.get()

@@ -793,7 +793,7 @@ class QuerySet(object):
        assert self.query.can_filter(), \
                "Cannot reorder a query once a slice has been taken."
        obj = self._clone()
        obj.query.clear_ordering()
        obj.query.clear_ordering(force_empty=False)
        obj.query.add_ordering(*field_names)
        return obj

+1 −1
Original line number Diff line number Diff line
@@ -1638,7 +1638,7 @@ class Query(object):
        else:
            self.default_ordering = False

    def clear_ordering(self, force_empty=False):
    def clear_ordering(self, force_empty):
        """
        Removes any ordering settings. If 'force_empty' is True, there will be
        no ordering in the resulting query (not even the model's default).