Döngüde Lazy Load (ARCH2059)
Anahtar python.orm.lazy-load-in-loop · Önem warning · Kategori orm
Dolaşılan her eleman üzerinde lazy yüklenen bir ilişkiye erişmek, eager load atlandığında N+1’in çalışma anındaki tetikleyicisidir. İlişkiyi önceden yükleyin.
Hatalı
Bölüm başlığı “Hatalı”for book in Book.objects.all(): print(book.author.name) # her book için lazy SELECTfor book in Book.objects.select_related("author"): print(book.author.name) # author tek JOIN ile geldiDüzeltme
Bölüm başlığı “Düzeltme”Döngüde erişilen ilişkiyi select_related / prefetch_related ile eager yükleyin.