- django有NotImplementedError("Bilateral transformations on nested querysets are not implemented.")报错是怎么回事
报错的原因Django中的错误是因为在使用了嵌套查询集上的双边变换时出现的。当使用上述情况时,会出现因为嵌套的querysets经过处理后会改变原有的queryset,而嵌套的queryset并不能进行这种操作。解决方法是将查询链接在一起, 这样就能保证在同一个queryset上进行过滤了或者是将查询结果转换为python list或者使用 `list`来转换成python list, 然后在python list上进行操作。另外,在复杂的查询场景下,可能需要使用django orm的subquery和exists来进行嵌套查询,这样可以使用原生sql来解决问题,提高查询效率。
2023-04-01 11:15:18 - 提示RecursionError("Maximum recursion depth exceeded: too many subqueries.")的解决方案
报错的原因这个错误是由于递归深度过大引起的。如果你的代码超过了这个深度限制,就会引发在Django中,这个错误通常是在使用subquery()函数时引发的。subquery()函数用于创建嵌套的子查询,但如果你的子查询嵌套太多层,就会超过递归深度限制。例如,你可以使用Django的JOIN操作符来减少嵌套层数,或者使用视图来拆分复杂的查询。
2023-03-01 21:09:10