ich in der folgenden Schleife einige effiziente Abfragen mit Django zu machen versuche:Django: Abfrage vorbereiten, aber nicht ausführen es
for division in divisions:
playoffs = league.playoff_set.filter(division=division, double_elimination=True)
ich vielleicht playoffs
vor der Schleife dachte Filterung nur von denen mit double_elimination=True
Auswahl würde verbessern sie:
playoffs = league.playoff_set.filter(double_elimination=True)
for division in divisions:
division_playoffs = playoffs.filter(division=division)
Aber jetzt bin ich besorgt, dass dies in der Schleife die Abfrage von playoffs
in jedem Lauf feuert statt Filterung auf dem zuvor abgerufene Ergebnis.
Funktioniert es wie erwartet oder wie befürchte ich? Sollte ich stattdessen Q
verwenden, um diese Abfragen mit besserer Leistung zu erstellen?
Django-Abfragesätze sind faul, sie werden nicht ausgeführt, bis Sie die Ergebnisse benötigen. – Sayse