さまざまなポリモーフィック タイプのノードを同じツリーに追加する方法が見つからないようです。基本的に、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 のツリーを持つことができると思います。