Во-первых, чтобы использовать аннотированное поле в Django ORM, вам нужно использовать метод annotate(), который позволяет добавить новое поле в ваш запрос. Например, если у вас есть модель Model1 и вы хотите создать новое аннотированное поле field1, вы можете сделать это следующим образом:
from django.db.models import Sum
qs = Model1.objects.annotate(field1=Sum('some_field'))
Здесь 'some_field' - это поле, по которому вы хотите сгруппировать и вычислить сумму для каждой группы. В итоговом queryset каждый объект будет иметь новое поле field1, содержащее сумму значений поля 'some_field'.
Теперь, если вы хотите производить математические операции с аннотированными полями, вы можете использовать методы F() и ExpressionWrapper() в Django ORM. Например, если у вас есть аннотированное поле field1 и вы хотите создать поле field2, равное значению field1 плюс 10, вы можете сделать это следующим образом:
from django.db.models import F, ExpressionWrapper
qs = qs.annotate(field2=ExpressionWrapper(F('field1') + 10, output_field=IntegerField()))
Здесь F('field1') представляет значение поля field1 текущего объекта, а ExpressionWrapper() позволяет вам производить математические операции с этим значением. Параметр output_field определяет тип данных поля field2 (в данном случае IntegerField()).
Таким образом, после выполнения этого кода в вашем queryset будет аннотированное поле field2 со значениями, равными значениям аннотированного поля field1 плюс 10.
Надеюсь, это поможет вам использовать аннотированные поля в Django ORM! Если у вас возникнут еще вопросы, не стесняйтесь задавать их!