from mptt.models import TreeForeignKey

什么是django-mptt?

django-mptt是一个可复用的django app, 旨在让你自己的django项目模型使用MPTT更加简单。它负责将数据库表作为树型结构管理的详细信息,并提供用于处理树型模型实例的工具

安装和文档

pip install django-mptt

这里我给大家看一下我实战的代码块

from mptt.models import MPTTModel
from mptt.models import TreeForeignKey
#1.类别表
class Classify(MPTTModel):
    name = models.CharField(max_length=50,verbose_name='类别名称')
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='classify_key',verbose_name='自关联外键') #注意这里的字段名称parent  大家如果按我下面的方法进行添加数据的话,一定不要改
    pic = models.CharField(max_length=300,verbose_name='类型图片',null=True,blank=True)
    class Meta:
        db_table = 'classify'
        verbose_name = "类别表"
        verbose_name_plural = "类别表"

其实这个就是一个自关联外键,主要用来区别分类等级。如果听不懂我给我大家看一下我加入数据之中的表结构就懂了。
在这里插入图片描述

MPTTMeta参数

下面我介绍的字段都是自动生成的字段

1、“parent_id”。将模型关联回自身的字段的名称,这样每个实例都可以是另一个实例的子实例。用户需要在模型上定义此字段如上示例的parent字段

2、“lft”。表示树型模型字段左边的节点数字,字段类型为PositiveIntegerField

3、“rght”。表示树型模型字段右边的节点数字,字段类型为PositiveIntegerField

4、“tree_id”。表示包含每个节点的树ID的字段的名称

5、“level”。表示每个节点所在的树形结构的层级

---------------------------------------------------------------

下面我给大家说一下加数据时注意的事情

class AddClassify(APIView):
    def post(self,request):
        name = request.data.get('name')   #分类名称
        parent_id = request.data.get('parent_id')   #关联上一级分类ID
        Classify.objects.create(name=name,parent_id=parent_id)
        return Response({'成功'})

这里我使用的postman进行接口传输数据

我这里只添加到二级分类,如果你需要添加三级分类,那么你在加数据时就需要将parent_id改为二级分类的ID了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值