﻿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
20348	Consistently handle `Promise` objects assigned to model fields.	Tai Lee	nobody	"Currently, all `Promise` objects are passed to `force_text()` deep in ORM query code. Not only does this make it difficult or impossible for developers to prevent or alter this behaviour, but it is also wrong for non-text fields.

`Field.get_prep_value()` seems like a better place to handle `Promise` objects, and `_proxy____cast()` seems like a better way to do it than passing them through `force_text()`. All `Field` subclasses should call `get_prep_value()` on their super class to ensure they have a real value to work with.

This change would also facilitate the creation of custom fields like `PickleField`, which *can* store `Promise` objects, to override this behaviour.
"	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
