我正在尝试在 django 中建模树结构。这是我所拥有的简化版本:
from django.db import models
class Node(models.Model):
parent = models.ForeignKey("Node", null=True)
name = models.CharField(max_length=20)
def child_cnt(self):
return self.node_set.count()
def __unicode__(self):
return self.name
到目前为止,一切都很好。有用。但是,如果我现在开始创建这样的层次结构:
from ....models import Node
root = Node()
root.name = "ROOT"
root.parent = None
root.save()
n = Node()
print n.child_cnt()
>> 1
print n.node_set.all()
[<Node: ROOT>]
那么根节点作为一个子节点在里面做n
什么呢?我怎样才能避免这种情况?
一旦我打电话,问题就消失了,但是在管理站点内n.save()
看到一个用 1 初始化的节点有点讨厌。child_cnt