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解析json实例方法
Nov 19 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python协程的用法和例子详解
Sep 09 Python
解决DataFrame排序sort的问题
Jun 07 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
pycharm显示远程图片的实现
Nov 04 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
快速了解Python开发环境Spyder
Jun 29 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 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
《APMServ 5.1.2》使用图解
2006/10/23 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
php页面防重复提交方法总结
2013/11/25 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python logging类库使用例子
2014/11/22 Python
opencv与numpy的图像基本操作
2019/03/08 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
python使用建议技巧分享(三)
2020/08/18 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
高级Java程序员面试题
2016/06/23 面试题
木工主管岗位职责
2013/12/08 职场文书
毕业生自荐书
2014/02/03 职场文书
节能宣传周活动总结
2014/05/08 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
投标承诺函范文
2015/01/21 职场文书
电气工程师岗位职责
2015/02/12 职场文书
酒会开场白大全
2015/06/01 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书