I have a simple model with news and categories:
class Category(models.Model):
name = models.CharField()
slug = models.SlugField()
class News(models.
Very simple:
>>> for category in Category.objects.all():
... print category.name, category.news_set.count()
Check out annotate() function from Django 1.1.
http://docs.djangoproject.com/en/dev/topics/db/aggregation/#topics-db-aggregation
Example (from that URL above):
>>> q = Book.objects.annotate(num_authors=Count('authors'))
>>> q[0].num_authors
2
>>> q[1].num_authors
1