我发现了一个 id 为 633 的有问题的节点。
tree.find_problems()
([], [], [], [633], [35, 9, 50, 291, 464])
运行 tree.fix_tree() 后没有发现任何问题。
tree.find_problems()
([], [], [], [], [])
但实际上 633 仍然处于某种奇怪的状态。
>>> node633.depth
0
>>> node633.path
''
问题: node633.depth 为 0,这意味着它不是根,但它也没有父级。路径也是空的。
这意味着我的代码将尝试从没有父节点的节点中查找父节点。
再次运行 fix_tree 并不能修复它。移动 node633 也不是一种选择,因为:
treebeard.exceptions.InvalidMoveToDescendant: Can't move node to a descendant.
更多信息:
django-treebeard==4.3
Django==2.2.1
我没有手动编辑路径和深度。
问题:如何修复这个损坏的 node633?