diff options
Diffstat (limited to 'django/db/models/sql/query.py')
| -rw-r--r-- | django/db/models/sql/query.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index ad82b167a6..264e29eaf3 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -431,13 +431,9 @@ class Query(object): def has_results(self, using): q = self.clone() + q.clear_select_clause() q.add_extra({'a': 1}, None, None, None, None, None) - q.select = [] - q.select_fields = [] - q.default_cols = False - q.select_related = False - q.set_extra_mask(('a',)) - q.set_aggregate_mask(()) + q.set_extra_mask(['a']) q.clear_ordering(True) q.set_limits(high=1) compiler = q.get_compiler(using=using) @@ -1626,6 +1622,17 @@ class Query(object): """ return not self.low_mark and self.high_mark is None + def clear_select_clause(self): + """ + Removes all fields from SELECT clause. + """ + self.select = [] + self.select_fields = [] + self.default_cols = False + self.select_related = False + self.set_extra_mask(()) + self.set_aggregate_mask(()) + def clear_select_fields(self): """ Clears the list of fields to select (but not extra_select columns). |
