diff options
| author | Simon Charette <charette.s@gmail.com> | 2015-01-12 19:55:57 -0500 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2015-01-15 13:03:34 -0500 |
| commit | 47bdad4e6b3bf70aec0d19d65eeb6a7319ad045a (patch) | |
| tree | cf4f778e8024ca2e32b1cbeb855b9dd5eb187bc1 /django/db/models/sql/where.py | |
| parent | 4832c004e88a68b98b976b4f68a1c9fdb4ea3530 (diff) | |
Replaced inner functions by class methods.
refs #24031
Thanks to Tim Graham and MichaĆ Modzelewski for the review.
Diffstat (limited to 'django/db/models/sql/where.py')
| -rw-r--r-- | django/db/models/sql/where.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/django/db/models/sql/where.py b/django/db/models/sql/where.py index cbb709dfc8..e3766c51d6 100644 --- a/django/db/models/sql/where.py +++ b/django/db/models/sql/where.py @@ -315,24 +315,26 @@ class WhereNode(tree.Node): clone.relabel_aliases(change_map) return clone + @classmethod + def _contains_aggregate(cls, obj): + if not isinstance(obj, tree.Node): + return getattr(obj.lhs, 'contains_aggregate', False) or getattr(obj.rhs, 'contains_aggregate', False) + return any(cls._contains_aggregate(c) for c in obj.children) + @cached_property def contains_aggregate(self): - def _contains_aggregate(obj): - if not isinstance(obj, tree.Node): - return getattr(obj.lhs, 'contains_aggregate', False) or getattr(obj.rhs, 'contains_aggregate', False) - return any(_contains_aggregate(c) for c in obj.children) + return self._contains_aggregate(self) - return _contains_aggregate(self) + @classmethod + def _refs_field(cls, obj, aggregate_types, field_types): + if not isinstance(obj, tree.Node): + if hasattr(obj.rhs, 'refs_field'): + return obj.rhs.refs_field(aggregate_types, field_types) + return False + return any(cls._refs_field(c, aggregate_types, field_types) for c in obj.children) def refs_field(self, aggregate_types, field_types): - def _refs_field(obj, aggregate_types, field_types): - if not isinstance(obj, tree.Node): - if hasattr(obj.rhs, 'refs_field'): - return obj.rhs.refs_field(aggregate_types, field_types) - return False - return any(_refs_field(c, aggregate_types, field_types) for c in obj.children) - - return _refs_field(self, aggregate_types, field_types) + return self._refs_field(self, aggregate_types, field_types) class EmptyWhere(WhereNode): |
