django annotate vs aggregate

annotate is used to add new annotations to each object in a queryset. It does not perform any aggregation.

aggregate is used to perform a calculation on the objects in a queryset, such as counting or summing, and returns a dictionary of the calculated values.