Desidero recuperare una somma di due campi (che sono le aggregazioni stesse) per ciascun oggetto in una tabella.Utilizzo di .extra() nei campi creati da .annotate() in Django
Di seguito può descrivere un po 'meglio quello che sto cercando, ma si traduce in un Unknown column in field list
-Errore:
items = MyModel.objects.annotate(
field1=Sum("relatedModel__someField"),
field2=Sum("relatedModel__someField")).extra(
select={"sum_field1_field2": "field1 + field2"})
Ho anche provato ad utilizzare F() per le ricerche sul campo, ma che mi dà un'istruzione SQL non valida .
Tutte le idee su come risolvere questo sono molto apprezzate.
Sei sicuro che l'errore "colonna sconosciuta" si riferisce a "extra" anziché a "annotate"? Mostra il traceback, per favore. –
La query funziona correttamente quando si utilizza solo "annotate": entrambe le somme vengono aggiunte come campi agli oggetti restituiti. Solo quando viene usato "extra", viene sollevata l'eccezione. – jnns
+1: avendo lo stesso problema, ancora non ha trovato una soluzione! –