OperationalError Traceback (most recent call last) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:105, in CursorWrapper._execute(self, sql, params, *ignored_wrapper_args) 104 else: --> 105 return self.cursor.execute(sql, params) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:360, in SQLiteCursorWrapper.execute(self, query, params) 359 query = self.convert_query(query, param_names=param_names) --> 360 return super().execute(query, params) OperationalError: Expression tree is too large (maximum depth 1000) The above exception was the direct cause of the following exception: OperationalError Traceback (most recent call last) Cell In[4], line 1 ----> 1 x = list(Organisation.objects.all().prefetch_related("roles__project")) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:384, in QuerySet.__iter__(self) 369 def __iter__(self): 370 """ 371 The queryset iterator protocol uses three nested iterators in the 372 default case: (...) 382 - Responsible for turning the rows into model objects. 383 """ --> 384 self._fetch_all() 385 return iter(self._result_cache) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:1951, in QuerySet._fetch_all(self) 1949 self._result_cache = list(self._iterable_class(self)) 1950 if self._prefetch_related_lookups and not self._prefetch_done: -> 1951 self._prefetch_related_objects() File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:1328, in QuerySet._prefetch_related_objects(self) 1326 def _prefetch_related_objects(self): 1327 # This method can only be called once the result cache has been filled. -> 1328 prefetch_related_objects(self._result_cache, *self._prefetch_related_lookups) 1329 self._prefetch_done = True File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:2397, in prefetch_related_objects(model_instances, *related_lookups) 2394 obj_to_fetch = [obj for obj in obj_list if not is_fetched(obj)] 2396 if obj_to_fetch: -> 2397 obj_list, additional_lookups = prefetch_one_level( 2398 obj_to_fetch, 2399 prefetcher, 2400 lookup, 2401 level, 2402 ) 2403 # We need to ensure we don't keep adding lookups from the 2404 # same relationships to stop infinite recursion. So, if we 2405 # are already on an automatically added lookup, don't add 2406 # the new lookups from relationships we've seen already. 2407 if not ( 2408 prefetch_to in done_queries 2409 and lookup in auto_lookups 2410 and descriptor in followed_descriptors 2411 ): File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:2598, in prefetch_one_level(instances, prefetcher, lookup, level) 2592 if additional_lookups: 2593 # Don't need to clone because the manager should have given us a fresh 2594 # instance, so we access an internal instead of using public interface 2595 # for performance reasons. 2596 rel_qs._prefetch_related_lookups = () -> 2598 all_related_objects = list(rel_qs) 2600 rel_obj_cache = {} 2601 for rel_obj in all_related_objects: File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:384, in QuerySet.__iter__(self) 369 def __iter__(self): 370 """ 371 The queryset iterator protocol uses three nested iterators in the 372 default case: (...) 382 - Responsible for turning the rows into model objects. 383 """ --> 384 self._fetch_all() 385 return iter(self._result_cache) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:1949, in QuerySet._fetch_all(self) 1947 def _fetch_all(self): 1948 if self._result_cache is None: -> 1949 self._result_cache = list(self._iterable_class(self)) 1950 if self._prefetch_related_lookups and not self._prefetch_done: 1951 self._prefetch_related_objects() File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/query.py:91, in ModelIterable.__iter__(self) 88 compiler = queryset.query.get_compiler(using=db) 89 # Execute the query. This will also fill compiler.select, klass_info, 90 # and annotations. ---> 91 results = compiler.execute_sql( 92 chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size 93 ) 94 select, klass_info, annotation_col_map = ( 95 compiler.select, 96 compiler.klass_info, 97 compiler.annotation_col_map, 98 ) 99 model_cls = klass_info["model"] File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1623, in SQLCompiler.execute_sql(self, result_type, chunked_fetch, chunk_size) 1621 cursor = self.connection.cursor() 1622 try: -> 1623 cursor.execute(sql, params) 1624 except Exception: 1625 # Might fail for server-side cursors (e.g. connection closed) 1626 cursor.close() File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:122, in CursorDebugWrapper.execute(self, sql, params) 120 def execute(self, sql, params=None): 121 with self.debug_sql(sql, params, use_last_executed_query=True): --> 122 return super().execute(sql, params) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:79, in CursorWrapper.execute(self, sql, params) 78 def execute(self, sql, params=None): ---> 79 return self._execute_with_wrappers( 80 sql, params, many=False, executor=self._execute 81 ) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:92, in CursorWrapper._execute_with_wrappers(self, sql, params, many, executor) 90 for wrapper in reversed(self.db.execute_wrappers): 91 executor = functools.partial(wrapper, executor) ---> 92 return executor(sql, params, many, context) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:100, in CursorWrapper._execute(self, sql, params, *ignored_wrapper_args) 98 warnings.warn(self.APPS_NOT_READY_WARNING_MSG, category=RuntimeWarning) 99 self.db.validate_no_broken_transaction() --> 100 with self.db.wrap_database_errors: 101 if params is None: 102 # params default might be backend specific. 103 return self.cursor.execute(sql) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/utils.py:91, in DatabaseErrorWrapper.__exit__(self, exc_type, exc_value, traceback) 89 if dj_exc_type not in (DataError, IntegrityError): 90 self.wrapper.errors_occurred = True ---> 91 raise dj_exc_value.with_traceback(traceback) from exc_value File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/utils.py:105, in CursorWrapper._execute(self, sql, params, *ignored_wrapper_args) 103 return self.cursor.execute(sql) 104 else: --> 105 return self.cursor.execute(sql, params) File ~/PycharmProjects/dataviz/.venv/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:360, in SQLiteCursorWrapper.execute(self, query, params) 358 param_names = list(params) if isinstance(params, Mapping) else None 359 query = self.convert_query(query, param_names=param_names) --> 360 return super().execute(query, params) OperationalError: Expression tree is too large (maximum depth 1000)