Я ищу хороший способ хранения и использования иерархических (родительских / дочерних) данных в Django. Я использую django-mptt , но это кажется совершенно несовместимым с моим мозгом - я получаю неочевидные ошибки в неочевидных местах, в основном, когда перемещаю вещи в дереве: с несовместимым состоянием, где узел и его родитель будут не соглашаться в их отношениях.
Мои потребности просты:
- Учитывая узел:
- найти его корень
- найди своих предков
- найти его потомков
- с деревом:
- легко перемещать узлы (т.е. менять родителя)
Мои деревья будут небольшими (не более 10 тыс. Узлов на 20 уровнях, как правило, намного меньше, скажем, 10 узлов с 1 или 2 уровнями).
Я должен думать, что в python / django должен быть более простой способ создания деревьев. Существуют ли другие подходы, обеспечивающие лучшую работу по поддержанию согласованности?