Вы можете добавить дополнительные поля, которые содержат некоторые процессы, в ваш набор запросов для каждого элемента с помощью annotate. С помощью агрегата вы можете получить результат для всех элементов набора запросов. Например, у вас есть такая модель:
class MyModel(models.Model):
field_first = models.IntegerField()
field_second = models.IntegerField()
Пример аннотирования: Если вы хотите добавить поле суммы для каждой записи, вы можете использовать аннотацию:
items = MyModel.objects.annotate(summary=F('field_first') + F('field_second'))
for item in items:
print(item.summary) # you have a summary field for items after this
Пример для агрегата: Если вы хотите получить сумму field_first для всех записей, вы можете использовать агрегат
total = MyModel.objects.aggregate(sum_first=Sum('field_first')) # it returns as a dict
print(total) # {'sum_first': total value}