首页 > 其他分享 >一对多 多对多 添加记录,修改,删除

一对多 多对多 添加记录,修改,删除

时间:2023-11-29 18:36:36浏览次数:40  
标签:book 删除 models publish 修改 添加 objects authors id

一对多添加记录:

publish=models.Publish.objects.create(name='北京出版社',addr='北京',phone='0536-12345678',email='邮箱地址')
# 新增西游记图书
book=models.Book.objects.create(name='红楼梦',price='23.45',publish=publish)# publish=对象
# book=models.Book.objects.create(name='西游记',price='23.55',publish_id=1)# publish_id=数字
# 新增西游记
book=models.Book.objects.create(name='西游记',price='23.55',publish_id=publish.id)# publish_id=数字


# 总结:
1 email可以不传email,本质就是varchar(admin中会判断)
2 新增图书:
-publish=publish
-publish_id=publish.id
3 写在表模型中的publish字段,到数据库中会变成publish_id(ForeignKey)
4 查到book对象以后
-book.publish 对象
-book.publish_id id号,数字

 

 

多对多添加记录,修改,删除:

1 自动创建的表,表模型就拿不到,book.authors代指表模型


# 多对多,作者和书
# 给西游记这本书新增两个作者lqz和egon
# 去到西游记这本书
# book=models.Book.objects.get(name='西游记')
# 代指中间表book.authors
# lqz=models.Author.objects.get(id=2)
# egon=models.Author.objects.get(id=3)
# book.authors.add(2,3) # 新增作者,通过id新增
# # book.authors.add(lqz,egon) # 新增作者,通过对象新增
# book.authors.add(2,egon) # 新增作者,通过对象新增

# 西游记删除一个作者
# book = models.Book.objects.get(name='西游记')
# book.authors.remove(2)
# egon = models.Author.objects.get(id=3)
# book.authors.remove(egon)

# clear 清空所有作者
book = models.Book.objects.get(name='西游记')
# book.authors.add(2, 3)
# book.authors.clear()

# set 先清空,再add,前提是不存在的作者
book.authors.set([4, ])

# add 增加,remove删除,set  clear 

标签:book,删除,models,publish,修改,添加,objects,authors,id
From: https://www.cnblogs.com/97zs/p/17865556.html

相关文章

  • oracle、sql server Join连表修改。
    1、Oracle连表修改mergeintot_usert1using(select*fromt_class)t2on(t1.userId=t2.userId)whenmatchedthenupdatesett1.name=t2.name2、Sqlserver连表修改UPDATEbSETb.ProductSN=p.productsnFROMt_userbINNERJOINt_studentpONb.MainSN=p.Ma......
  • 电脑卡顿,空间删除处理释放技巧
    电脑卡顿,长期使用各种文件积累有关C盘作为系统盘,各种软件安装、更新文件、虚拟文件、配置文件、注册表,软件运行时缓存,以及垃圾文件等等,都会保留在这个盘上。所以电脑使用时间久了,就要定期清理,否则就可能会被各种文件塞满,造成卡顿。针对此问题我分享一些自己平时释放空间的方法:......
  • 【Python入门教程】Python的shutil库介绍+基础函数使用(文件/目录复制、移动、删除、解
    ​前言        很多时候编过的代码过段时间就忘了,所以想用博文记录一下一些平时常用库的函数,今天跟大家分享一下python的shutil库的常用函数,包括文件复制、删除、移动等常见操作。同时为了复习之前python类的使用,所以今天的代码就用类封装起来了,大家直接看函数就行,不需......
  • B树删除和创建(C)
    不得不说,这个我写了两天。第一天晚上想移植一篇博客的,后来经过四个小时发现是错了谁懂啊!今天早上又找了一篇,大错误我都改了,有一个潜在的小bug是自己调试跳出来的,谁懂啊!得找阅读量高的才行!先把刚刚的小错误放一下 也不知道博主怎么想的,同时i和keynum++,害,害我好找!!!改后就好了......
  • 从一个txt文件中读取数据,并且再把读取到的数据修改为想要的格式,再逐行写入到另一个txt
    packageservice;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.util.List;/***从一个txt文件中读取数据,并且再把读取到的数据修改为想要的格......
  • C#删除.git文件夹
    C#在通常情况下删除文件只需要调用下面的方法即可:Directory.Delete(dir.FullName,true);上面的代码会删除指定的文件夹及文件夹下面所有的子文件夹和文件。但是用上面的代码去删除.git文件夹的目录时,貌似会失败,报异常。具体的失败原因不是特别清楚,也没有去仔细钻研。可能的......
  • 19.删除链表的倒数第N个节点
    leetcode题目链接题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=10......
  • GitHub 添加 SSH key 详细步骤
    查看git上ConnectingtoGitHubwithSSH的文档后,解决方案如下:检查SSHkeys打开终端输入ls~/.ssh来查看SSHkeys是否存在.$ls-al~/.ssh#Liststhefilesinyour.sshdirectory,iftheyexist查看文件夹,是否你已经拥有一个publicSSHkey.通常GitHub......
  • vue+iframe 添加请求头,自适应宽度和高度,iframe将token放在请求头不是src的url中
    1<template>2<divclass="iframe">3<iframe4v-if="isRequestHeader"5id="myIframe"6name="myIframe"7src=""8frameborder="0&qu......
  • el-table修改某一行数据不生效怎么回事?
    1<el-table2ref="multipleTable"3:class="{'no-multiple':!isMultiple}"4@select="selectTable"5border6:key="isUpdate"7:data="tableData"8>9&......