6

Djangoで階層(親/子)データを保存して使用するための良い方法を探しています。私はdjango-mpttを使用していますが、脳とは完全に互換性がないようです-主にツリー内で物事を移動するときに、非自明な場所で非自明なバグが発生します:一貫性のない状態になります。ノードとその親は、それらの関係について意見が一致しません。

私のニーズは単純です:

  • 与えられたノード:
    • そのルートを見つける
    • その祖先を見つける
    • その子孫を見つける
  • 木で:
    • ノードを簡単に移動する(つまり、親を変更する)

私のツリーは小さくなります(20レベルを超える最大10kノード、通常ははるかに小さく、たとえば1または2レベルの10ノード)。

python/djangoでツリーを作成するもっと簡単な方法が必要だと思います。一貫性を維持するためのより良い仕事をする他のアプローチはありますか?

4

1 に答える 1

4

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

于 2010-04-23T17:29:53.303 に答える