2012-01-27 12 views
0

私は、ユーザーにリソースを配置するフォルダのような階層構造を与える再帰的な関係を、作成するためにはDjangoを使用しようとしています。ジャンゴ - オプションの再帰的な関係

これを達成するにはどうすればよいでしょうか?

私はtreebeardやmpttを使ってネストされたセットを作ることができますが、ツリー構造に変更を加えることを読んでいます(この場合多くのことが起こります)。フィールドを更新する必要があります。

一方、私は自分にのForeignKeyでモデルをフォルダでしたが、どのように私はいない外部キーの値とトップレベルフォルダを管理するのですか?私はこの値をNULLに設定するだけでDjangoが文句を言いますか?

アドバイスありがとうございます。

ありがとうございました。

+1

外部キーは 'ようにnull = Trueで' FK = models.ForeignKey( 'mymodelという'、空白=真)として定義することができますそれDBにnullのままにすることができます。これはあなたが意味することですか? –

+0

はい、Djangoで問題が発生するかどうかはわかりませんでした。ありがとう。 – Dan

答えて

2

Treebeardは、実際には3つの異なるツリー実装をサポートしています。必要なスイートを選択してください。

  • 隣接リスト(速い遅いのコスト読み込んで書き込み)
  • はパス(SQLの樹木を扱うのはおそらく最速の方法)
  • ネストされたセット(非常に効率的で高いメンテナンスのコストで読み込み、マテリアライズド)書き込み/削除操作上の

ドキュメントはここにある:https://tabo.pe/projects/django-treebeard/docs/tip/