diff options
Diffstat (limited to 'django/db/models/query.py')
| -rw-r--r-- | django/db/models/query.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py index ea7533a67d..b8fc0c695f 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -182,7 +182,12 @@ class QuerySet(object): counter._select_related = False select, sql, params = counter._get_sql_clause() cursor = connection.cursor() - cursor.execute("SELECT COUNT(*)" + sql, params) + if self._distinct: + id_col = "%s.%s" % (backend.quote_name(self.model._meta.db_table), + backend.quote_name(self.model._meta.pk.column)) + cursor.execute("SELECT COUNT(DISTINCT(%s))" % id_col + sql, params) + else: + cursor.execute("SELECT COUNT(*)" + sql, params) return cursor.fetchone()[0] def get(self, *args, **kwargs): |
