Django多对多数据增删改查

Django教程——数据库操作(增删改查) 在上篇文章中我们学习了Django教程——模型,这篇文章学习Django教程——数据库操作(增删改查)。定义好模型类后,在终端执行如下命令进行迁移操作,将模型映射到数据库,大家可以参考之前的文章——Django框架——模型来进行上面的步骤。我们在views.py文件中编写视图函数实现数据库操作——增删改查,直接访问对应的URL即可。 阅读详情

Django多对多数据增删改查

1.表结构及基本方法

1.表结构

# models.py 
class Book(models.Model): 
    author = models.ManyToMany(to='author', relate_name='author') 
    """ 
        ...字段 
    """ 
class author(models.Model): 
    """ 
        ...字段 
    """

 

2.基本方法

# 增、删、改 
    add() # 增加 
    remove() # 删除表,只删一条数据 
    clear() # 清空表, 把所有关系的表全部清空 例如 book_obj.author.clear() 表示把当前书籍对象的所有作者全部清空

 

2.查


 
# views.py 
# 获取主键id值为1的图书对象 book_obj = models.Book.object.filter(pk=1).first() 
# 通过图书对象获取该图书对象下的所有作者 all_author = book_obj.author.all() 
# 这里的author字段是建表时候的字段名 
# 结果为类似列表的querry_set列表对象

3.增


 
# views.py 
    author_list = [1, 2, 3, 4] # 获取当前新增的图书对象 
    book_obj = models.Book.objects.create( title=123, price=123, publish=123,) 
# 通过当前新增的图书对象在多对多关系表中添加对应关系字段 book_obj.author.add(*author_list) 
# save()方法保存 book_obj.save() 
# add()方法可以接收一个值,也可以用逗号隔开接收多个值

4.改


 
# views.py 
# 修改图书作者为下方列表 
    author_list = [1, 2, 3, 4] 
# 获取当前修改的图书对象 
    book_obj = models.Book.objects.filter(pk=1).first() 
# 先清除当前图书的所有作者再添加 
    book_obj.author.clear() 
    book_obj.author.add(*authors_list) 
    book_obj.save() 
# 直接修改 
    book_obj.author.set(*authors_list)

 

django入门教程之多表增删改查【九】 添加子应用multitables,配置路由,注册app。 阅读详情

相关推荐

django创建多对多表三种方法,和ORM操作增删改查

不管是哪种方法,都能完成你需要的操作,只不过方式不同。根据自己的需要选择一种就行了。 第一种:自带的ManyToManyField django会帮你在数据库自动生成一个老师和班级的关系表,但不显示在models.py里面,所以不能直接操作关系表,但是可以间接操作。 不足之处:关系表只能有三个字段,比如我想在关系表中添加一个上课时间的字段,那么就不能用此方法。 class teacher(models.Model): t_name = models.CharField(max_length=20,default=0) tea_cla = models.ManyToManyF

Django中多对多查询方式

创建django-admin startproject DjangoORM 创建App ./manage.py startapp ORM from django.db import models class Goods(models.Model):#商品 g_name = models.CharField(max_length=20) g_price = models.De...

Zamo.的博客 740

Django之多对多查询与操作方法详解

主要介绍了Django之多对多查询与操作方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

django数据库的多对多增删改查

django数据库的多对多增删改查操作实例

qq_58174484的博客 965

基于CODESYS与EtherCAT的步进电机单轴控制实践

本文详细介绍了基于CODESYS平台与EtherCAT总线技术实现步进电机单轴控制的完整实践流程。从硬件选型、软件工程创建、EtherCAT主从站配置,到运动控制功能块编程与在线调试,手把手指导读者完成从零到一的搭建,并提供了常见问题的排坑指南,帮助自动化开发者快速掌握这一高效、灵活且成本可控的工业运动控制解决方案。

hh234的博客 491

2024年全国大学生信息安全竞赛安徽省赛网络系统建设与运维赛项-网络构建真题

该网络工程方案主要包含基础配置、有线网络、无线网络、出口网络、运维配置和SDN网络六个部分。基础配置包括设备接口设置、SSH服务开启和SNMP功能配置。有线网络部分重点部署VLAN、MSTP、VRRP和OSPF协议,实现网络冗余和负载均衡。无线网络规划了AP点位、信号覆盖和用户接入策略,包括SSID配置、频段优化和安全认证。出口网络配置了NAT转换、VPN隧道和流量审计功能。运维方面搭建了监控平台实时监测设备状态。SDN网络部分通过控制器实现流量管控。整个方案实现了多业务隔离、高可用性网络架构和

weixin_42221934的博客 1174

Django 数据库表多对多的创建和增删改查

前面已经学习了在Django里面如何对单表的操作,同时也学习了1对多(单个外键)的表的操作。接下来,我们看看多对多(多个外键)的关系如何创建和管理。比如说,我们有一个主机表,也有一个应用程序表,一个主机可以对应多个程序,一个程序也可以对应多个主机,这是一个典型的多对多的结构。一般来说,我们会在数据库里创建一个中间的表,分别和这两个表进行外键关联。例1. 手动的定义一个HostToApp表,关联到H...

weixin_34007879的博客 367

Ollama-OCR实战:5分钟搞定PDF文档转Markdown(附qwen2.5vl模型配置)

本文详细介绍了如何利用Ollama本地部署多模态大模型qwen2.5vl,结合OCR技术,实现PDF文档到Markdown的端到端智能转换。通过解析传统OCR的局限与AI方案的优势,并提供从环境搭建、提示词工程到处理复杂表格的完整实战指南,帮助用户高效构建自动化文档处理流水线,彻底重塑文档处理工作流。

yog99的博客 606

Django(五):数据表多对多关系建立、增删改查、聚合查询、 F、Q对象

关系表 模型创建 class Person(models.Model): # id = models.AutoField(primary_key=True) name = models.CharField(max_length=32,verbose_name="姓名") age = models.IntegerField(verbose_name="年龄") ...

Gym987的博客 300

CIC-IDS数据集特征介绍

###1、简介 通信安全机构(CSE)与加拿大网络安全研究所(CIC)合作项目,该项目对自1998年以来现有的11个数据集的评估表明,大多数数据集(比如经典的KDDCUP99,NSLKDD等)已经过时且不可靠。其中一些数据集缺乏流量多样性和容量,一些数据集没有涵盖各种已知的攻击,而另一些数据集将数据包有效载荷数据匿名化,这不能反映当前的趋势。有些还缺少特征集和元数据。 CIC-IDS-2017数据集包含良性和最新的常见攻击,类似真实世界数据(PCAPs)。 它的数据采集截至2017...

蓝亚之舟的博客 3万+

Altera USB-Blaster在Win10/Win11的驱动兼容性处理

解决Altera USB-Blaster在Windows 10和Windows 11系统下的驱动兼容性问题,详细演示如何手动安装与更新altera usb-blaster驱动安装,确保下载电缆正常识别,提升开发调试效率。

weixin_42284380的博客 1290

A100 ADC数据MATLAB信号处理与双实现验证实战

高速数据采集卡输出的原始二进制流需经过解析、去直流、滤波、加窗和FFT等步骤才能得到有效频谱。其中,数据格式解析(位宽、字节序、通道顺序)和算法归一化(窗函数、FFT缩放)是常见难点。采用MATLAB与NumPy双实现交叉验证,通过逐层比对中间结果和误差度量,可确保算法逻辑与数值一致性。该方法适用于雷达、软件无线电等场景,能有效定位解析错误或实现差异,提升信号处理链路的可靠性。

weixin_34007886的博客 183

003、高通骁龙Spectra ISP架构深度解析:IFE/BPS/IPE流水线与Chromatix调优实战

摘要: 本文深入解析高通骁龙Spectra ISP架构,重点剖析IFE、BPS、IPE三阶段的流水线协作机制与Chromatix调优实战。通过夜景预览"水波纹"案例,揭示HDR对齐与TNR运动估计的关联性问题,指出ISP调优需关注模块间的时序与带宽约束。文章详解各模块核心功能:IFE负责RAW域处理(HDR合成/校正),BPS专注降噪与细节增强,IPE进行YUV域精处理。针对Chromatix调优,强调参数与寄存器映射关系,并给出LSC网格密度、TNR运动灵敏度、LTM光晕等典型问题的解决方案。最后提出实用

zzfmlxs的博客 231

go操作mysql创建多对多_Django 数据库表多对多的创建和增删改查

前面已经学习了在Django里面如何对单表的操作,同时也学习了1对多(单个外键)的表的操作。接下来,我们看看多对多(多个外键)的关系如何创建和管理。比如说,我们有一个主机表,也有一个应用程序表,一个主机可以对应多个程序,一个程序也可以对应多个主机,这是一个典型的多对多的结构。一般来说,我们会在数据库里创建一个中间的表,分别和这两个表进行外键关联。例1. 手动的定义一个HostToApp表,关联到H...

weixin_35586996的博客 190

x2-DFD:A framework for explainable and explainable deepfake detection

该文章提出了X2-DFD框架,用于可解释和可扩展的深度伪造检测。通过评估大型多模态语言模型(MLLMs)在深度伪造检测中的内在能力,发现它们在不同伪造相关特征上的有效性各异。基于此,实施了针对性的微调策略,显著提高了MLLMs的解释能力,并整合了外部深度伪造检测器(EDDs),以结合MLLMs和传统检测器的互补优势,实现更好的检测和解释。

志在山顶的人,不会贪念山腰的风景 510

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 1万+

django批量修改table_Django 数据库表多对多的创建和增删改查

前面已经学习了在Django里面如何对单表的操作,同时也学习了1对多(单个外键)的表的操作。接下来,我们看看多对多(多个外键)的关系如何创建和管理。比如说,我们有一个主机表,也有一个应用程序表,一个主机可以对应多个程序,一个程序也可以对应多个主机,这是一个典型的多对多的结构。一般来说,我们会在数据库里创建一个中间的表,分别和这两个表进行外键关联。例1. 手动的定义一个HostToApp表,关联到H...

weixin_36465108的博客 567

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

django数据库操作-增删改查-多对多关系以及一对多(外键)关系

一、一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名', max_length=10) age = models.IntegerField('作者年龄') class Book(models.Model): person = mode

xerxes的专栏 3万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Django一对一 ,一对多,多对多

Django 数据库一对多,多对多目录app01/models.pyapp01/views.pyapp01/urls.pyPython_Django/urls.py 目录 app01/models.py from django.db import models # Create your models here. # 1.继承 models.Model # 卖家 class Seller(models.Model): id = models.AutoField(primary_key=True

a1309525802的博客 3288

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python--Django Django使用MySQL数据库 & ORM版增删改查

总结: ORM版增删改查 1 ORM语句 a类名.objects.all()返回一个列表 b类名.objects.filter()返回一个列表 c类名.objects.get()返回一个对象 d类名.objects.create(name='')...

一越王超的博客 1446

Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践

在Django开发中,数据关系的管理至关重要。今天,我们将快速了解Django ORM如何处理多对一、一对一和多对多这三种核心数据关系。这些基础知识将帮助你更高效地构建数据库驱动的应用。让我们一起探索Django ORM的奥秘吧!

啊猪是的读来过倒的博客 1421

django(八)之数据库表的一对多,多对多表-增删改查

单表操作 表记录的添加 方式一: Book() b=Book(name="python基础",price=99,author="yuan",pub_date="2017-12-12") b.save() 方式...

weixin_30553837的博客 662

数据库多表的增删改查操作

数据库多表的增删改查操作:增加操作(一对多)--- 一对多形式的表的建立:models.py: views.py: 查询操作(通过对象来查询):正向查询---通过Book对象来直接取到外键链接:# 正向查询 反向查询: 双下划线进行查询(filter 与 values 用 __):双下划线的正向查询(上面正向反向查询了解即可,建议日后使用双下划綫来查询): 双下划线反向查询: 该案例中,双下划线各种问题查询的实例:# 查找人民出版社出版过的书籍与价格ret = Book.object

J_H_T_的博客 1195
上一篇: django 多对多关系建立 三种方式
下一篇: centos7修改系统语言为简体中文
拓宽视野
博客等级 码龄9年 66粉丝 197原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值