我似乎找不到一种方法来将各种多态类型的节点添加到同一棵树中。基本上,我想要一个树,它的节点要么是公司,要么是地区,这两个节点都是从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树,它与公司/地区类型具有一对一的关系。
发布于 2016-08-13 00:04:19
好的,在看过django-treebeard的代码之后,实现这一点的方法是:
c1.add_child(instance=Region('Region 1'))我仍然不能百分之百地确定这是一个好主意,但这至少像我希望的那样坚持了这棵树。
https://stackoverflow.com/questions/38921444
复制相似问题