我正在尝试获取节点列表(一个 QuerySet)中所有节点的 descendants(include_self=True)
,而不仅仅是单个节点。这应该只需要一个 SQL 查询。
示例(实际上并不能正常工作):
some_nodes = Node.objects.filter( ...some_condition... )
some_nodes.get_descendants(include_self=True) #hopefully I would like
to have all possible Nodes starting from every node of "some_nodes"
目前我唯一的想法是迭代一些节点并针对每个节点运行get_descendants()函数——但这是可怕的解决方案(会产生大量 SQL 查询)。
如果没有干净的方法可以通过Django ORM来解决,那么你能否提供一个自定义的SQL查询语句呢?在此假设我有一个Node的主键列表。
编辑:如果可能的话——所有的“some_nodes”都位于同一父目录下,并且在树中处于相同的“层级”。
Node.objects
而不是Node.tree
。 - Cory