我有一个django模型,它表示树的边缘,还有一个表示节点的模型:
class Edge(models.Model):
nodeFrom = models.ForeignKey('Node', related_name='+')
nodeTo = models.ForeignKey('Node', related_name='+')
class Node(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField()
parentNode = models.ForeignKey('Node', null=True)
有没有一种方法可以为只命中一个数据库的子树构建树路径?你知道吗
我试过这个:
userEdges = Edge.objects.filter(nodeFrom__in=userNodes, nodeTo__in=userNodes).select_related('nodeFrom', 'nodeTo)
但如果我试着这样修路
def get_path(node, userEdges):
path = [node]
while path[-1].parentNode_id != None:
path.append(userEdges.get(nodeTo=node).nodeFrom)
return path
数据库访问总是由以下行引起:
userEdges.get(nodeTo=node).nodeFrom
那是因为你在使用
.get
。由于您已经检索了userEdges
并将它们存储在内存中,因此可以执行以下操作:相关问题 更多 >
编程相关推荐