I am getting a djongo library error when I am trying to add an Station object in my admin panel. The error page says there is no exception message supplied so I am facing difficulty to pinpoint what is causing the error. The error is of RecursionError
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\tokens.py", line 19, in __contains__
return item is not None and (self is item or item[:len(self)] == self)
RecursionError: maximum recursion depth exceeded in comparison
I asked chatgpt about the same and it suggested me to check my models.py file for any loops in relationship with other models but I did and I think my models.py file is not causing this, So can it be a bug on djongo's side?
models.py
from djongo import models
class City(models.Model):
name = models.CharField(max_length=100)
class Station(models.Model):
name = models.CharField(max_length=100)
# Add other station-related fields as needed
city = models.ForeignKey(City, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Bus(models.Model):
number = models.CharField(max_length=10)
# Add other bus-related fields as needed
# Define a Many-to-Many relationship with Station
stations = models.ManyToManyField(Station)
def __str__(self):
return self.number
Full first traceback error
Internal Server Error: /admin/bus/station/add/
Traceback (most recent call last):
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\query.py", line 808, in __iter__
yield from iter(self._query)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\query.py", line 167, in __iter__
yield self._align_results(doc)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\query.py", line 269, in _align_results
if selected.table == self.left_table:
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\sql_tokens.py", line 133, in table
return alias2token[name].table
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\sql_tokens.py", line 133, in table
return alias2token[name].table
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\sql_tokens.py", line 133, in table
return alias2token[name].table
[Previous line repeated 917 more times]
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\sql_tokens.py", line 130, in table
name = self.given_table
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\djongo\sql2mongo\sql_tokens.py", line 141, in given_table
name = self._token.get_real_name()
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 361, in get_real_name
return self._get_first_name(dot_idx)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 386, in _get_first_name
return token.get_name()
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 355, in get_name
return self.get_alias() or self.get_real_name()
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 344, in get_alias
_, ws = self.token_next_by(t=T.Whitespace)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 244, in token_next_by
return self._token_matching(funcs, idx, end)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 223, in _token_matching
if func(token):
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\sql.py", line 242, in <lambda>
funcs = lambda tk: imt(tk, i, m, t)
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\utils.py", line 100, in imt
elif types and any(token.ttype in ttype for ttype in types):
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\utils.py", line 100, in <genexpr>
elif types and any(token.ttype in ttype for ttype in types):
File "C:\Users\Admin\Envs\routemaster\lib\site-packages\sqlparse\tokens.py", line 19, in __contains__
return item is not None and (self is item or item[:len(self)] == self)
RecursionError: maximum recursion depth exceeded in comparison
Note- After removing the foreignkey relation in Stations the error is eliminated. But I want to use that feature so can someone fix it
If you want to resolve this issue just switch to Django<=4.0.10,pymongo==3.12.3. This will surely fix your issue. After changing this you would be able to add data related to foreign key.