Ben video arasında birçok ilişki bir biri ile çok basit bir datamodel var ve (bütün yorumlarla videoları) videolar için sorgulamak ve tüm nesne grafiğini kapmak isteyenDjango'da n + 1 seçim nasıl engellenir?
class Video(models.Model):
url = models.URLField(unique=True)
.....
class Comment(models.Model):
title = models.CharField(max_length=128)
video = models.ForeignKey('Video')
.....
yorumlar. Sql'ye baktığımda iki tane seçtiğini görüyorum, biri Videolar için ve Yorumlar için bir tane. Bunu nasıl önleyebilirim? Katılmak ve hemen her şeyi almak istiyorum.
Bunu django ile yapmak mümkün mü?
Tersini yapmak, videodan yorumlar almak istiyorum. Videolar için sorgulamak istiyorum ancak bu videolar için tüm yorumları alın ve şöyle bir sql ifadesine sahip olursunuz: video v select v.id = c.video_id burada v.date> some_date. Fikir, tüm videoları ve yorumlarını bir sorguda elde etmektir. – bvk
Üzgünüz, benim sql ifademde üretmek doğru değildi. Aşağıdakileri oluşturmak istiyorum: Videolardan soldan * seçin v join v.id = c.id burada v.date> some_date. Aslında tüm videoları ve yorumlarını, yorumları olmayan videoları bile istiyorum. Bu örnek _Comment.objects.filter (video__title__starts_with = 'The') .select_related ('video'). All() _ yorumsuz videolar almayacaktır. – bvk
Bu yüzden size bunu sizin için yapabilecek django-batch-select gibi diğer araçlara bir link verdim: "rotamly M2M ve TERS İLİŞKİLERİ ile çalışan bir select_related". –