﻿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
32951	Remove Query.where_class in favor of using WhereNode directly.	Nick Pope	Nick Pope	"#6261 added support for customized `WhereNode` and `QUERY_TERMS`.

This was to ""get GeoDjango working with the queryset-refactor branch"" as it required a custom `GeoWhereNode` and being able to extend geographic lookup types.

`QUERY_TERMS` was removed in 244cc401559e924355cf943b6b8e66ccf2f6da3a for Django 2.1 with the intended replacement being the Lookup Registration API.

`GeoWhereNode` was removed in 3caf957ed5eaa831a485abcb89f27266dbf3e82b for Django 1.8, obsoleted by `GISLookup`.

`Query.where_class` is internal and undocumented and is propagated around through other methods signatures, e.g. `.get_extra_restriction()`, which is also internal and undocumented. We should be able to remove this no longer necessary complexity and use `WhereNode` directly.

Despite these being undocumented APIs, I don't know whether we want to go through a deprecation period?"	Cleanup/optimization	closed	Database layer (models, ORM)	dev	Normal	fixed	wherenode, where_class		Ready for checkin	1	0	0	0	0	0
