﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
34104	Making Q.__eq__ work regardless of ordering	Daniel Wysocki	nobody	"The `Q.__eq__` method does not recognize the associativity/commutativity of connector operators.  For instance

{{{
#!python
(Q(id=1) | Q(id=2)) == (Q(id=2) | Q(id=1))
}}}

evaluates to `False`.

A possible solution: add an attribute to `django.utils.tree.Node` to flag it as associative/commutative (maybe call it `unordered`).  If that flag is set, cast `self.children` and `other.children` to sets instead of lists before comparing them."	Uncategorized	new	Database layer (models, ORM)	4.1	Normal		query		Unreviewed	0	0	0	0	0	0
