Предполагая, что вы используете Django 1.1 или достаточно недавнюю проверку, вы можете использовать новые функции агрегирования . Что-то вроде:
counts = MyModel.objects.values('datettimefield').annotate(Count('datettimefield'))
На самом деле вы получаете список словарей:
[{'datetimefield':<date1>, 'datettimefield__count':<count1>},
{'datetimefield':<date2>, 'datettimefield__count':<count2>}, ...]
но довольно просто написать список, чтобы получить нужный формат.
Отредактировано после комментария : Если вы работаете на 1.0.2, самое эффективное средство - использовать необработанный SQL.
cursor = connection.cursor()
cursor.execute(
"SELECT COUNT(0) FROM `mymodel_table` "
"GROUP BY `mydatetimefield`;"
)
counts = cursor.fetchall()