Django'yu tüm gün boyunca kayıt altına alarak dahili bir web sitesi kodlarken, şu anda modeldeki ForeignKey'lerle çok etkisiz olduğunu farkettim.Django yabancı alanlardan gelen sorgular
Temel olarak arama tabloları olan 6 ForeignKey içeren bir modelim var. Tüm nesneleri sorguladığımda ve bunları bir şablonda görüntülediğimde, öğe başına yaklaşık 10 sorgu çalıştırıyor. İşte daha iyi açıklamak için gereken bazı kodlar:
class Website(models.Model):
domain_name = models.CharField(max_length=100)
registrant = models.ForeignKey('Registrant')
account = models.ForeignKey('Account')
registrar = models.ForeignKey('Registrar')
server = models.ForeignKey('Server', related_name='server')
host = models.ForeignKey('Host')
target_server = models.ForeignKey('Server', related_name='target')
class Registrant(models.Model):
name = models.CharField(max_length=100)
... ve 5 daha basit tablo. 155 Web sitesi kayıtları vardır ve şu anda kullanıyorum görünümünde:
Bu, 1544 sorgu yürütme biter.
<span class="value">Registrant:</span> <a href="/filter/registrant/{{ website.registrant.id }}">{{ website.registrant.name }}</a><br />
yüzden çok fazla sorgu çalıştırmak için gidiyor ... ama bunlar aşırı olması gibi görünüyor: şablonunda, ben gibi yabancı tüm alanları kullanıyorum. Bu normal mi? Bu şekilde yapmamalı mıyım?
Django'ya oldukça yeni geldim, umarım aptalca bir şey yapıyorum. Kesinlikle harika bir çerçeve.
Teşekkür ederiz! Bu, bu işleve sahip olmak için kesinlikle çok mantıklı. Şimdi 9 sorgu kullanıyor. Tablolar küçük olduğundan, tüm verileri yüklediğini umursamıyorum (ve açıkçası daha iyi olduğu gibi). –