django-treebeard基本使用

django-treebeard 是一个 Django 扩展,用于实现树形数据结构。它是一个为 Django 的ORM(对象关系映射)提供树形数据结构实现的库。django-treebeard 提供了用于表示树形结构、节点的操作、以及树遍历的 ORM 模型和管理器。

1.安装

        1.直接使用pip安装

 pip install django-treebeard

        2.github离线下载后安装

        https://github.com/django-treebeard/django-treebeard/releases

python setup.py install

2.快速上手

       1. 为树创建基本模型。在此示例中,我们将使用具体化路径树

from django.db import models

from treebeard.mp_tree import MP_Node

class Category(MP_Node):
    name = models.CharField(max_length=30)

    node_order_by = ['name']

    def __str__(self):
        return 'Category: {}'.format(self.name)

        2.迁移同步数据库

python manage.py makemigrations
python manage.py migrate

        3.创建,删除,新增节点

from models import Category

# 新增根节点
Category.add_root(name='xxx')

# 新增子节点和兄弟节点
node_obj = Category.objects.get(id=1)
node_obj.add_child(name='xxx') # 新增子节点
node_obj.add_sibling(name='xxx') # 新增子节点

#删除节点
node_obj.delete()


#查询相关
#1.获取包含当前节点对象的祖先的查询集,从根节点开始,下降到父节点。(某些子类可能会返回列表)
node_obj.get_ancestors()

#2.获取节点的所有子节点的查询集
node_obj.get_children()

#3.获取节点的子节点数
node_obj.get_children_count()

#4.获取上个或下个同级节点,如果它是最左边/右边 的同级节点,则可以返回节点本身。
node_obj.get_first_sibling()
node_obj.get_last_sibling()

#5.当前节点对象的父节点。
node_obj.get_parent()

#6.当前节点对象的根节点。
node_obj.get_root()

#7.获取当前节点对象的所有同级节点(包括自身)
node_obj.get_siblings()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值