Если я получаю объект с помощью django, я могу использовать .select_related ()
, чтобы указать django получить все объекты внешнего ключа, а именно:
obj = ModelClass.objects.select_related().get(id=4) #1 db hit
foo = obj.long.chain.of.stuff #no db hit
Если у меня уже есть obj
, без .select_related ()
, то есть:
def doit(obj):
obj.long.chain.of.stuff #4 db hits
есть ли способ заставить django заполнить все отношения внешних ключей? Что-то вроде:
def doit(obj):
obj.magic() #1 db hit
obj.long.chain.of.stuff #no db hits