Fixed #29125 -- Made Q.deconstruct() deterministic with multiple keyword arguments.

This commit is contained in:
Tim Graham 2018-02-12 14:00:29 -05:00
parent a6fb81750a
commit b95c49c954
3 changed files with 14 additions and 1 deletions

View file

@ -58,7 +58,7 @@ class Q(tree.Node):
def __init__(self, *args, **kwargs):
connector = kwargs.pop('_connector', None)
negated = kwargs.pop('_negated', False)
super().__init__(children=list(args) + list(kwargs.items()), connector=connector, negated=negated)
super().__init__(children=list(args) + sorted(kwargs.items()), connector=connector, negated=negated)
def _combine(self, other, conn):
if not isinstance(other, Q):