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