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 逐行分割大txt文件的方法
Oct 10 Python
Django admin美化插件suit使用示例
Dec 12 Python
python+pandas分析nginx日志的实例
Apr 28 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
python 定时器,轮询定时器的实例
Feb 20 Python
python3-flask-3将信息写入日志的实操方法
Nov 12 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
python 装饰器重要在哪
Feb 14 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
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
Django实现学生管理系统
2019/02/26 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
如何给Python代码进行加密
2020/01/10 Python
如何在python中判断变量的类型
2020/07/29 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
法学专业应届生求职信
2013/10/16 职场文书
人事专员岗位职责
2013/11/20 职场文书
客服主管岗位职责
2013/12/13 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
优秀党支部申报材料
2014/12/24 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python