10
Ich versuche, meine Abfragen zu optimieren, prefetch_related besteht jedoch darauf, die Tabellen zu verbinden und alle Felder auszuwählen, obwohl ich nur die Liste der IDs aus der Relationstabelle benötige.django prefetch_related id only
können Sie die 4. Abfrage ignorieren. Es hängt nicht mit der Frage zusammen.
Verwandte Code:
class Contact(models.Model):
...
Groups = models.ManyToManyField(ContactGroup, related_name='contacts')
...
queryset = Contact.objects.all().prefetch_related('Groups')
lol, gut gespielt. Hier haben Sie Ihren Keks. :) – demux
In Django 1.11 mit Postgres musste ich zusätzlich den Fremdschlüssel des Prefetch-Objekts auswählen - sonst machte Django eine DB-Suche für jedes Prefetch-Objekt, um den Fremdschlüssel auszuwählen (was schlimmer ist als gar kein Prefetch). In diesem Beispiel wäre die Änderung: 'querieset = Group.objects.all(). Only ('id', 'contact_id'))' – erikreed
Sehr schade, dass es nicht mit Inhaltstypen funktioniert – valignatev