diff --git a/cachalot/utils.py b/cachalot/utils.py index 7ab99be..35cebcf 100644 --- a/cachalot/utils.py +++ b/cachalot/utils.py @@ -103,7 +103,7 @@ def _find_subqueries_in_where(children): yield grand_child elif child_class is ExtraWhere: raise IsRawQuery - elif child_class is NothingNode: + elif child_class in (NothingNode, Subquery, Exists): pass else: rhs = child.rhs @@ -112,11 +112,6 @@ def _find_subqueries_in_where(children): yield rhs elif rhs_class is QuerySet: yield rhs.query - elif rhs_class is Subquery or rhs_class is Exists: - try: - yield rhs.query - except: - yield rhs.queryset.query elif rhs_class in UNCACHABLE_FUNCS: raise UncachableQuery