10
Sto cercando di ottimizzare le mie query, ma prefetch_related insiste per unire le tabelle e selezionare tutti i campi anche se ho solo bisogno dell'elenco di id dalla tabella delle relazioni.django prefetch_related id solo
È possibile ignorare il 4 ° query. Non è correlato alla domanda.
Codice correlati:
class Contact(models.Model):
...
Groups = models.ManyToManyField(ContactGroup, related_name='contacts')
...
queryset = Contact.objects.all().prefetch_related('Groups')
lol, ben giocato. Qui, prendi il tuo biscotto. :) – demux
In Django 1.11 con Postgres, avevo bisogno di selezionare ulteriormente la chiave esterna dell'oggetto precaricato, altrimenti Django stava facendo una ricerca DB per ogni oggetto precaricato per selezionare la chiave esterna (che è peggio di nessuna prefetch). In questo esempio, la modifica sarebbe: 'queryset = Group.objects.all(). Only ('id', 'contact_id'))' – erikreed
Molto triste che non funzioni con i tipi di contenuto – valignatev