我有2種型號在我的Django代碼:得到一個單一的查詢外鍵對象 - Django的
class ModelA(models.Model):
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
created_by = models.ForeignKey(User)
class ModelB(models.Model):
category = models.CharField(max_length=255)
modela_link = models.ForeignKey(ModelA, 'modelb_link')
functions = models.CharField(max_length=255)
created_by = models.ForeignKey(User)
說MODELA有100條記錄,所有這些都可能會或可能不會有聯繫的ModelB
現在說我要與ModelB
數據相處的每MODELA記錄列表我會做:
list_a = ModelA.objects.all()
然後讓我會對ModelB數據做
for i in list_a:
i.additional_data = i.modelb_link.all()
但是這個運行在我的每個實例的查詢。從而使101個查詢運行。
是否有所有在短短1查詢運行此的任何方式。或者至少少於101個查詢。
我試圖把在ModelA.objects.select_related().all()
但這似乎並沒有產生任何影響。
謝謝
我知道,當使用原始的SQL你不會得到一個對象返回,所以你知道任何方式將結果轉換成一個Django對象 – John 2010-05-14 09:47:00