2013-03-08 15 views
5

, ne sıklıkta defer() ve only() gibi QuerySet yöntemleri kullanıyorsunuz? Sanırım onlar hakkında çok fazla şey duymadım ve sadece son zamanlarda bu yöntemlere rastladım.Django sorgu kümesi yalnızca() ve erteleme() Gerçek dünyada

bakınız Dokümanlar burada. https://docs.djangoproject.com/en/dev/ref/models/querysets/

+0

Bu bilgi için bu ve teşekkür duymak benim ilk gelişim. – catherine

+0

Genellikle veri geçişleri yazarken ('migrations.RunPython' kullanarak) yararlıdırlar, bunlar oldukça kullanışlıdır ve üretimde büyük bir DB tablosu için geçişler yaparken çok fazla ileri-geri gitmekten kaçınabilirler. – elias

cevap

10

Bu yöntemler, uygulamanızın performansını optimize ederken çoğunlukla kullanılır.

Genellikle performans sorunlarınız değilse, optimize etmek gerekmez, konuşma. Optimize etmeniz gerekmiyorsa, bu işlevlere ihtiyacınız yoktur. Bu, select_related veya prefetch_related gibi QuerySet gibi çok gelişmiş özelliklere sahip bir durumdur. "Gerçek dünyada nasıl kullanıldığını sık sık" gelince

, bu gerçekten bir cevap verilebilir bir soru değil. Gerektiğinde kullanılırlar. Onlara ihtiyacınız yoksa onları kullanmayın.

1

defer() ve only() birbirinden biraz zıttır. Her ikisi de field_names listesini alır. defer(), argüman olarak iletilen sütunların listesini sorgulamaz. Tersine, only() sorgulayacaktır, sadece sütunların listesi, argüman olarak iletilir.

İkisi

Eğer piton kodunda görüşlerini uyguladıklarını

  • getirilirken gereksiz sütun kaçınarak,

    • ya optimizasyonu istediğiniz bir senaryoda, kullanılmaktadır. Eg.Admin, X no. Gösterilen olmalıdır. of cols, Kullanıcı gösterilmeli Y no. cols, Ziyaretçi gösterilmemelidir z no cols.