0

私が作ろうとしているのは、 のポインターを使用して非常に簡単に実行できるものですC++。アイデアはこれです。オブジェクトがあり、それは と呼ばれますNode。このノードには、いくつかの特徴があります。

  1. 親と子を介して他のノードに接続されます。
  2. つまり、このノードを取得して、好きな場所に貼り付けたり、別のツリーにすることも、このノードを使用して新しいツリーを完全に開始することもできます。

また、これは、ノードを使用してツリー全体を作成できることを意味します。理想的には、ツリーは、1 つの中央の最大の祖父母を持つノードのコレクションになります。

ただし、ノードは 2 つ以上の親を持つことができます。

4

2 に答える 2

2

簡単に実行できますが、パフォーマンスの観点からはお勧めしません。

class YourModel(models.Model):
    parent = models.ForeignKey('YourModel', related_name='children')

    def siblings(self):
        return self.objects.filter(parent=self.parent_id).exclude(pk=self.pk)

使用法:

some_child = YourModel.objects.get(...)
siblings = some_child.siblings()
parent = some_child.parent()
children = parent.children.all()

問題は、本当に、あなたは何をしたいですか?

于 2013-07-09T13:32:41.680 に答える
0

階層的な分類管理システムを提供するサードパーティのdjango-categoriesを確認することをお勧めします。ノードを作成し、それを他のノードに貼り付けてツリーを作成できます(親子関係あり)

于 2013-07-09T14:00:05.090 に答える