django-counter-field makes it extremely easy to denormalize and keep track of related model counts.