from operator import itemgetter
from itertools import groupby
lst = [dict(category=c.category.name, title=c.title) for c in Course.objects]
lst.sort(key=itemgetter('category'))
categories = [(category, len(list(items))) for category, items in groupby(lst, key=itemgetter('category'))]
好吧,自己搞定了