Blick auf die folgende Szenario zählen:Wie kann man vermeiden N + 1, wenn in django
Ich habe ein User
Modell und ein Address
Modell, das auf Benutzer gehört. Im Benutzerindex muss ich zusammen mit den Benutzerinformationen anzeigen, wie viele Adressen der Benutzer hat, aber es generiert N + 1 Abfragen, da jedes Mal, wenn ich count
aufruft, eine zusätzliche Abfrage für diese Benutzer-ID ausgeführt wird.
Wie kann ich das tun? Ich lese über select_related
aber ich versuche es in der umgekehrten Reihenfolge ...
In SQL, um es zu übersetzen könnte:
SELECT user.*,
(SELECT count(*) FROM address WHERE address.user_id = user.id) AS address_count
FROM user
Gibt es eine Möglichkeit, die oben SQL mit django QuerySet zu erhalten ?
herrlich! das ist genau das, was ich will, danke! –
@IgorBelo - Keine Sorge, viel Spaß! – Sayse