我正在寻找一种在Django中存储和使用分层(父/子)数据的好方法。我一直在使用django-mptt,但它似乎与我的大脑完全不相容 - 我最终在非显而易见的地方出现了非明显的错误,主要是在树中移动东西时:我最终会出现不一致的状态,节点及其父节点对其关系的意见不一致。
我的需求很简单:
我的树会很小(超过20个级别最多10k个节点,通常要小得多,比如10个节点有1或2个级别)。
我不得不认为必须有一种更简单的方法来在python / django中做树。是否有其他方法可以更好地保持一致性?
答案 0 :(得分:3)
django-treebeard是另一种选择。它有很棒的文档。我相信它符合您的所有上述要求,并包括一些功能,用于检查树中的问题并在树中修复这些问题。
Node.find_problems()
https://tabo.pe/projects/django-treebeard/docs/1.60/api.html#treebeard.models.Node.find_problems
Node.fix_tree()
https://tabo.pe/projects/django-treebeard/docs/1.60/api.html#treebeard.models.Node.fix_tree