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