adds a calculated field to each object in a queryset
fossils = DBFossil.objects.annotate(num_associated=Count('associated_fossils'))
performs a calculation across the entire queryset and returns a single result
species_value = DBSpecies.objects.annotate(total_value=Sum('species__fossil_value')).values('species_name', 'total_value')