Django MPTT常用方法总结
Django mptt是个Django第三方组件,目标是使Django项目能在数据库中存储层级数据(树形数据)。它主要实现了修改过的前序遍历算法,如果你对原理还不是很了解,可以看我的这篇文章。当然,使用mptt时,原理是可以不用了解的,因为具体的实现细节都已经隐藏。我们只要知道怎么获取我们需要的数据就可以了,下面就为大家分享一下我们在日常使用过程当中经常用到的Django MPTT的常用方法:
获取节点下所有节点,包括本节点:
nodelist = sitenode.SiteNode.objects.get(pk=id).get_descendants(include_self=True)
获取节点下所有节点,不包括本节点:
nodelist = sitenode.SiteNode.objects.get(pk=id).get_descendants(include_self=False)
获取节点之前所有节点,也就是祖先类的节点,包括本节点:
nodelist = sitenode.SiteNode.objects.get(pk=id).get_ancestors(include_self=True)
获取节点之前所有节点,也就是祖先类的节点,不包括本节点:
nodelist = sitenode.SiteNode.objects.get(pk=id).get_ancestors(include_self=False)
THE END