首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于django-treebeard的多态树建模

基于django-treebeard的多态树建模
EN

Stack Overflow用户
提问于 2016-08-12 23:24:28
回答 1查看 410关注 0票数 1

我似乎找不到一种方法来将各种多态类型的节点添加到同一棵树中。基本上,我想要一个树,它的节点要么是公司,要么是地区,这两个节点都是从MP_Node继承的HierarchyNode

代码语言:javascript
复制
class HierarchyNode(MP_Node):
    name = models.CharField(max_length=30)

class Company(HierarchyNode):
    pass

class Region(HierarchyNode):
    pass

添加公司根节点非常简单

代码语言:javascript
复制
c1 = Company.add_root(name='Company 1')

但是我似乎想不出如何添加一个区域作为c1的子项

代码语言:javascript
复制
c1.add_child(name='Region 1') # adds a Company named Region 1
c1.add_child(Region(name='Region 1')) # isn't valid

有没有办法做到这一点?API不允许这样做是因为这不是一个好主意吗?有没有更合适的方式来模拟这个概念?或者,我假设我可以有一个HierarchyNodes树,它与公司/地区类型具有一对一的关系。

EN

回答 1

Stack Overflow用户

发布于 2016-08-13 00:04:19

好的,在看过django-treebeard的代码之后,实现这一点的方法是:

代码语言:javascript
复制
c1.add_child(instance=Region('Region 1'))

我仍然不能百分之百地确定这是一个好主意,但这至少像我希望的那样坚持了这棵树。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38921444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档