我想要做的是可以非常简单地使用C++
. 这个想法是这样的,我有一个对象,它被称为Node
. 该节点将具有几个特征:
- 它通过父母和孩子连接到其他节点。
- 可以移植,可以移植,意思就是我可以拿这个Node,贴到我想放的任何地方,可以是另外一棵树,也可以用这个Node来完全开始一棵新的树。
此外,这意味着您可以使用节点创建一棵完整的树。理想情况下,树将是具有一个中央最大祖父节点的节点集合。
但是,一个节点可以有两个甚至更多的父节点。
我想要做的是可以非常简单地使用C++
. 这个想法是这样的,我有一个对象,它被称为Node
. 该节点将具有几个特征:
此外,这意味着您可以使用节点创建一棵完整的树。理想情况下,树将是具有一个中央最大祖父节点的节点集合。
但是,一个节点可以有两个甚至更多的父节点。
这很容易实现,但在性能方面我不推荐它:
class YourModel(models.Model):
parent = models.ForeignKey('YourModel', related_name='children')
def siblings(self):
return self.objects.filter(parent=self.parent_id).exclude(pk=self.pk)
用法:
some_child = YourModel.objects.get(...)
siblings = some_child.siblings()
parent = some_child.parent()
children = parent.children.all()
问题是真的,你想做什么?
我建议您检查提供分层分类管理系统的第三方django-categories 。您可以创建节点并将其粘贴到其他人以创建树(具有父子关系)