10
我試圖優化我的查詢,但prefetch_related堅持要加入表並選擇所有字段,即使我只需要關係表中的id列表。django prefetch_related id only
可以忽略第四查詢。這與問題無關。
相關代碼:
class Contact(models.Model):
...
Groups = models.ManyToManyField(ContactGroup, related_name='contacts')
...
queryset = Contact.objects.all().prefetch_related('Groups')
哈哈,打得好。在這裏,有你的cookie。 :) – demux
在帶有Postgres的Django 1.11中,我需要另外選擇預取對象的外鍵 - 否則Django正在爲每個預取對象進行數據庫查找以選擇外鍵(這比根本沒有預取更糟糕)。在這個例子中,修改爲:'queryset = Group.objects.all()。only('id','contact_id'))' – erikreed
非常難過,它不適用於內容類型 – valignatev