django的model操作汇整详解


Posted in Python onJuly 26, 2019

单表操作

增加数据

auther_obj = {"auther_name":"崔皓然","auther_age":1}
models.auther.objects.create(
 **auther_obj
)
models.auther.objects.create(
 auther_name="周雍博",
 auther_age=4
)
obj = models.auther(
 auther_name="崔洪艳",
 auther_age=29
)
obj.save()
obj = models.auther(
 auther_name = "王仙枝",
 auther_age = "50"
)
obj.save()

删除数据

models.auther.objects.filter(auther_name="崔洪艳")[0].delete()

一对多操作

增加数据

a_obj = models.auther.objects.get(id=1)
 
 
models.book.objects.create(
 book_name = "python课程1",
 book_price = 12,
 book_auther = a_obj
)
a_obj = models.auther.objects.get(id=5)
 
models.book.objects.create(
 book_name = "java课程1",
 book_price = 13,
 book_auther_id = a_obj.id
)
a_obj = models.auther.objects.get(id=2)
 
book_dict = {
 "book_name":"python课程2",
 "book_price":14,
 "book_auther_id":a_obj.id
}
 
obj = models.book.objects.create(
 **book_dict
)
a_obj = models.auther.objects.get(id=4)
 
book_dict = {
 "book_name":"java课程2",
 "book_price":15,
 "book_auther":a_obj
}
 
models.book.objects.create(
 **book_dict
)

一对多正向查询

# 查询id为2的书的所有作者的信息
obj = models.book.objects.get(id=2)
 
print(obj.book_auther.auther_name)
print(obj.book_auther.auther_age)
 
obj = models.book.objects.filter(id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
 
print(obj)
# 查询id为2的作者的出版的书
 
obj = models.book.objects.filter(book_auther_id=2).values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)
 
 
obj = models.book.objects.get(book_auther_id=2)
print(obj.book_auther.auther_age)
print(obj.book_auther.auther_name)
print(obj.book_name)

一对多反向查询

# 查看出版社出版的书
 
obj = models.auther.objects.filter(id=2).values("auther_name","auther_age","book__book_name")
print(obj)
 
obj = models.auther.objects.get(id=2).book_set.values("book_name","book_price","book_auther__id","book_auther__auther_name","book_auther__auther_age")
print(obj)

多对多操作

增加数据

b1 = models.book.objects.get(id=1)
b2 = models.book.objects.get(id=2)
b4 = models.book.objects.get(id=4)
b5 = models.book.objects.get(id=5)
models.publish.objects.get(id=1).publish_book.add(
 b1,b2
)
book_list = [b1,b2]
 
models.publish.objects.get(id=2).publish_book.add(
 *book_list
)

更新数据

book_list = [b1,b2,b4,b5]
models.publish.objects.get(id=1).publish_book.set(book_list)

移除数据

models.publish.objects.get(id=1).publish_book.remove(b1)
 
book_list = [b2, ]
 
models.publish.objects.get(id=1).publish_book.remove(*book_list)

正向查询

obj = models.publish.objects.get(id=1).publish_book.values("book_name","publish__publish_name")
print(obj)
 
obj = models.publish.objects.filter(id=1).values("publish_name","publish_book__book_name")
print(obj)

反向添加数据

p1 = models.publish.objects.get(id=1)
p2 = models.publish.objects.get(id=2)
p3 = models.publish.objects.get(id=3)
b1.publish_set.add(p1,p2,p3)

反向删除数据

b1.publish_set.remove(p1)

反向更新数据,把remove替换为set就可以了

反向查询

obj = models.book.objects.get(id=1).publish_set.values("publish_name","publish_book__book_name")

model中多表关系和参数 

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

多对多

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

一对一

django的model操作汇整详解

model操作

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解django的model操作汇整详解

django的model操作汇整详解

django的model操作汇整详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
python中正则表达式的使用详解
Oct 17 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
Python Django 添加首页尾页上一页下一页代码实例
Aug 21 Python
python统计指定目录内文件的代码行数
Sep 19 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
django的csrf实现过程详解
Jul 26 #Python
详解Python 4.0 预计推出的新功能
Jul 26 #Python
python mysql断开重连的实现方法
Jul 26 #Python
seek引发的python文件读写的问题及解决
Jul 26 #Python
python经典趣味24点游戏程序设计
Jul 26 #Python
对django后台admin下拉框进行过滤的实例
Jul 26 #Python
python函数的万能参数传参详解
Jul 26 #Python
You might like
PHP中如何调用webservice的实例参考
2013/04/25 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
python调用支付宝支付接口流程
2019/08/15 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
学校三八妇女节活动情况总结
2014/03/09 职场文书
销售员岗位职责
2014/06/09 职场文书
用人单位聘用意向书
2015/05/11 职场文书
美丽人生观后感
2015/06/03 职场文书
安全生产奖惩制度
2015/08/06 职场文书
亲情作文之母爱
2019/09/25 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书