Model1 hat einen ForeignKey zu Model2. Und Model2 hat ein ForeignKey (Model3, null = True, leer = True) zu Model3. Wenn ich select_related() für Model1 verwende, wird Model3 standardmäßig nicht ausgewählt, weil null = True ist. Wie kann ich erzwingen, dass select_related() einem foreign_key folgt, der null = True hat?Erzwingen Sie select_related(), um ForeignKeys auszuwählen, die null = True-Attribut haben?
Die einzige Art, wie ich denken kann, ist ausdrücklich diese Fremdschlüssel wählen:
model1s = Model1.objects.all().select_related('model2', 'model2__model3')
Ist dies der einzige Weg?
Ich habe viele ForeignKey-Felder, die auf null = True festgelegt sind. Ich würde sie lieber nicht alle aufzählen. Aber ich denke, ich werde es tun müssen. –
Sie haben wieder Recht. Es scheint eine Menge zu tippen, aber das ist technisch ein bisschen eine Ecke Anwendungsfall. Besser als überhaupt nicht auswählen zu können. Bitte fügen Sie Ihre eigene Antwort hinzu, wenn Sie sich etwas anderes einfallen lassen. – istruble
verbrachte Jahre auf der Suche nach diesem .. Danke für die Frage und die Antwort! – John