Chcę pobrać sumę dwóch pól (które same są agregacją) dla każdego obiektu w tabeli.Korzystanie z .extra() na polach utworzonych przez .annotate() w Django
Mogą opisać trochę lepiej co jestem po, lecz skutkuje Unknown column in field list
-Error:
items = MyModel.objects.annotate(
field1=Sum("relatedModel__someField"),
field2=Sum("relatedModel__someField")).extra(
select={"sum_field1_field2": "field1 + field2"})
Próbowałem też za pomocą F() dla wyszukiwań polowych, ale to daje mi nieprawidłową instrukcję SQL .
Wszelkie pomysły na rozwiązanie tego problemu są bardzo cenne.
Czy jesteś pewien, że błąd "nieznanej kolumny" odnosi się do "ekstra" zamiast "adnotacji"? Pokaż ślad, proszę. –
Zapytanie działa poprawnie, gdy używana jest tylko opcja "adnotacja": obie sumy są dodawane jako zmienne do zwróconych obiektów. Tylko w przypadku użycia 'extra', wyjątek jest podnoszony. – jnns
+1: mając ten sam problem, wciąż nie znalazłem rozwiązania! –