【问题标题】:django-treebeard Materialized Path tree depth ended up being zerodjango-treebeard 物化路径树深度最终为零
【发布时间】:2021-12-15 10:37:02
【问题描述】:

我发现了一个 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?

【问题讨论】:

    标签: python django django-treebeard


    【解决方案1】:

    我想我没有别的事可做,只是删除它。 我跑了:

    node633.delete()
    tree.find_problems()
    ([], [], [], [], [])
    

    发现问题还是开心的。

    它的不是理想的解决方案,但欢迎任何更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2018-12-04
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多