Il modello1 ha una chiave esterna in Model2. E Model2 ha un ForeignKey (Model3, null = True, blank = True) a Model3. Per impostazione predefinita, quando utilizzo select_related() su Model1, Model3 non è selezionato a causa di null = True. Come posso forzare select_related() a seguire un foreign_key che ha ha null = True?Come forzare select_related() per selezionare ForeignKeys che hanno attributo null = True?
L'unico modo che posso pensare è quella di selezionare in modo esplicito queste chiavi esterne:
model1s = Model1.objects.all().select_related('model2', 'model2__model3')
E 'questo l'unico modo?
Ho molti campi ForeignKey impostati su null = True. Preferirei non elencarli tutti. Ma credo che dovrò. –
Hai ragione di nuovo. Sembra un sacco di battitura, ma questo è tecnicamente un caso d'uso in un angolo. Meglio che non essere in grado di select_related affatto però. Per favore aggiungi la tua risposta se ti viene in mente qualcosa di diverso. – istruble
Età trascorsa alla ricerca di questo .. grazie per la domanda e la risposta! – John