Django-MPTT - 按直接后代的数量对根节点进行排序

NFi*_*ano 5 django-queryset django-mptt

我正在使用 Django-MPTT 来显示一个简单的 2 级层次结构(root => child(ren))。我正在寻找一种方法来构建我的查询集,以便节点返回时首先返回具有最多子节点的根节点,最后返回具有最少子节点(如果有)的节点。

cra*_*gds 3

像这样的事情应该这样做:

from mptt.templatetags.mptt_tags import cache_tree_children
qs = qs.filter(level__lt=2)
root_nodes = cache_tree_children(qs)
root_nodes.sort(key=lambda node: len(node.get_children()), reverse=True)
Run Code Online (Sandbox Code Playgroud)