﻿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
29413	QuerySet.get_or_create()/update_or_create() shouldn't evaluate lazy defaults unless they are needed	Viktor Danyliuk	Liuyang Qin	"I wish to have ability to write something like this:
{{{
from django.utils.functional import lazy

obj, created = model.objects.get_or_create(
     key=jwt,
     defaults=lazy(self.get_defaults_for_model, dict)(jwt) 
)
}}}
But at the moment `_extract_model_params` prepare defaults before it's realy needed.
I think `_extract_model_params` should be separated to `_prepare_model_lookup` and `_prepare_model_params`.
So it will be possible to call `_prepare_model_params` when `model.DoesNotExist` or even inside `_create_object_from_params`.
"	Cleanup/optimization	closed	Database layer (models, ORM)	2.0	Normal	fixed	QuerySet get_or_create update_or_create lazy		Accepted	1	0	0	0	1	0
