1

さまざまなポリモーフィック タイプのノードを同じツリーに追加する方法が見つからないようです。基本的に、MP_Node から継承する HierarchyNode から継承する、Company または Region のいずれかのノードを持つツリーが必要だと思います

class HierarchyNode(MP_Node):
    name = models.CharField(max_length=30)

class Company(HierarchyNode):
    pass

class Region(HierarchyNode):
    pass

Company ルート ノードの追加は簡単です

c1 = Company.add_root(name='Company 1')

しかし、リージョンを子として追加する方法がわからないようですc1

c1.add_child(name='Region 1') # adds a Company named Region 1
c1.add_child(Region(name='Region 1')) # isn't valid

これを行う方法はありますか?それは悪い考えなので、API はこれを許可しませんか? この概念をモデル化するより適切な方法はありますか? あるいは、Company/Region タイプと 1 対 1 の関係を持つ HierarchyNodes のツリーを持つことができると思います。

4

1 に答える 1

0

わかりました、django-treebeard のコードを調べた後、これを行う方法は次のとおりです。

c1.add_child(instance=Region('Region 1'))

これが良いアイデアかどうかはまだ 100% 確信が持てませんが、少なくとも期待どおりにツリーを持続させることができました。

于 2016-08-12T16:04:19.057 に答える