﻿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
22819	Rename attribute `output_type` on the Query Expression API	jorgecarleitao	Tim Graham	"Since the `output_type` used in the Query Expression API is becoming part of the Public API in the 1.7,
I would like to propose to rename it before 1.7 is out. Here is why:

`output_type` is a property of classes that follow the Query Expression API and is defined on any object that follows the Query Expression API as

{{{
@property
def output_type(self):
    return IntegerField()  # example, it only requires to be a subclass of `Field`
}}} 

However,

{{{
print(type(IntegerField()))  # <class '__main__.IntegerField'>
print(type(IntegerField))    # <class 'type'>
}}}

IMHO, `output_type` can be misleadingly interpreted as being a `type` rather than an `instance` of (a subclass of) a Field.
I imagine it would be very easy to someone write

{{{
@property
def output_type(self):
    return CustomField
}}}

instead of

{{{
@property
def output_type(self):
    return CustomField()
}}}

Given that some types that comply with the Query Expression API already have the attribute `source` (Aggregate, Col, and GeoAggregate), one possibility would be use just `output`."	Cleanup/optimization	closed	Database layer (models, ORM)	1.7-beta-2	Release blocker	fixed		jorgecarleitao	Accepted	0	0	0	0	0	0
