6
私はジャンゴを持つオブジェクトを取得していた場合、私はウィットに、だけでなく、すべての外部キーのオブジェクトを取得するにはジャンゴを指示する.select_related()
を使用することができます:django:既存のオブジェクトのselect_related()ですか?
obj = ModelClass.objects.select_related().get(id=4) #1 db hit
foo = obj.long.chain.of.stuff #no db hit
私はすでにそれが.select_related()
されずに、obj
を持っている場合は、ということは次のとおりです。
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
私はあなたの唯一の方法だと思う。私はコードのビットをコメントすることを確認したいので、後でそれを見ている人は、それが冗長に見えるので、それが行われた理由を疑問に頭を傷つけることはありません。 –