﻿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
32554	Add Q.TRUE, Q.FALSE, Q.any() and Q.all()	jonathan-golorry	nobody	"`Q.FALSE` and `Q.TRUE` are classattribute aliases for `Q(pk__in=[])` and `~Q(pk__in=[])`.

`Q.any()` and `Q.all()` mimic python's builtin `any` and `all`, defaulting to `Q.FALSE` and `Q.TRUE` for empty iterators (or iterators containing only empty Q objects).

See this forum thread discussing why these are an improvement over many ad-hoc implementations people are using: https://forum.djangoproject.com/t/improving-q-objects-with-true-false-and-none/851

My patch relies on https://code.djangoproject.com/ticket/32548 and https://code.djangoproject.com/ticket/32549. I kept those as separate tickets because they each had side effects that warranted their own discussion."	New feature	new	Database layer (models, ORM)	dev	Normal		Q objects, any, all		Unreviewed	0	0	0	0	0	0
