Index: django/db/models/sql/query.py =================================================================== --- django/db/models/sql/query.py (revision 9781) +++ django/db/models/sql/query.py (working copy) @@ -295,10 +295,14 @@ query.related_select_cols = [] query.related_select_fields = [] + result = query.execute_sql(SINGLE) + if result is None: + return {None: 0} + return dict([ (alias, self.resolve_aggregate(val, aggregate)) for (alias, aggregate), val - in zip(query.aggregate_select.items(), query.execute_sql(SINGLE)) + in zip(query.aggregate_select.items(), result) ]) def get_count(self): Index: tests/regressiontests/aggregation_regress/models.py =================================================================== --- tests/regressiontests/aggregation_regress/models.py (revision 9781) +++ tests/regressiontests/aggregation_regress/models.py (working copy) @@ -151,6 +151,10 @@ >>> Book.objects.select_related('publisher').annotate(num_authors=Count('authors')).values()[0] {'rating': 4.0, 'isbn': u'013790395', 'name': u'Artificial Intelligence: A Modern Approach', 'pubdate': datetime.date(1995, 1, 15), 'price': Decimal("82.8..."), 'id': 5, 'num_authors': 2, 'publisher_id': 3, 'pages': 1132} +# Regression for #10089: count() with empty QuerySet +>>> Book.objects.filter(id__in=[]).count() +0 + """ }