from mptt.models import TreeForeignKey

2023-12-19 00:30

本文主要是介绍from mptt.models import TreeForeignKey,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

from mptt.models import TreeForeignKey,一看就懂。

  • 什么是django-mptt?
    • 安装和文档
  • 这里我给大家看一下我实战的代码块
  • MPTTMeta参数
    • 下面我介绍的字段都是自动生成的字段
    • ---------------------------------------------------------------
  • 下面我给大家说一下加数据时注意的事情
    • 这里我使用的postman进行接口传输数据
    • 我这里只添加到二级分类,如果你需要添加三级分类,那么你在加数据时就需要将parent_id改为二级分类的ID了。

什么是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')   #关联上一级分类IDClassify.objects.create(name=name,parent_id=parent_id)return Response({'成功'})

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

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

这篇关于from mptt.models import TreeForeignKey的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510316

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Vue3+vite中使用import.meta.glob

前言:         在vue2中支持require导入模块或文件但是在vue3中已经不支持require导入了,为此vite提供了一个全新的方法import.meta.glob方法来支持批量导入文件  import.meta.glob 匹配到的文件默认是懒加载的,通过动态导入实现,并会在构建时分离为独立的 chunk。如果你倾向于直接引入所有的模块(例如依赖于这些模块中的副作用首先被应用

Python 2.7 安装MySQLdb模块 import MySQLdb

python 2.7 使用 import MySQLdb 报 Traceback (most recent call last):File "<stdin>", line 1, in <module>ImportError: No module named MySqldb 于是乎执行一下命令 一下搞定 pip install MySQL-python 再次执行import MySQ

【大数据Java基础-JAVA 面向对象11】关键字(二):package/import

1.1 使用说明: * 1.为了更好的实现项目中类的管理,提供包的概念 * 2.使用package声明类或接口所属的包,声明在源文件的首行 * 3.包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)、“见名知意” * 4.每"."一次,就代表一层文件目录。 1.2 举例: 举例一: 某航运软件系统包括:一组域对象、GUI和reports子系统 举例二:MVC设计模式