我似乎无法找到将各种多态类型的节点添加到同一个树的方法。基本上,我想我想要一个树,其节点是公司或地区,都继承自继承自MP_Node的HierarchyNode
class HierarchyNode(MP_Node):
name = models.CharField(max_length=30)
class Company(HierarchyNode):
pass
class Region(HierarchyNode):
pass
添加公司根节点是直截了当的
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不允许这样做,因为这是一个坏主意吗?有没有更合适的方法来模拟这个概念?或者,我想我可以有一个HierarchyNodes树,它与公司/地区类型有一对一的关系。
答案 0 :(得分:0)
好的,看完django-treebeard的代码之后,做到这一点的方法是:
c1.add_child(instance=Region('Region 1'))
我仍然不是百分百肯定这是一个好主意,但这至少会像我希望的那样坚持树。