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编写一个闹钟功能
Jul 11 Python
Python网络编程详解
Oct 31 Python
详解python函数传参是传值还是传引用
Jan 16 Python
Tensorflow之Saver的用法详解
Apr 23 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python 反向输出字符串的方法
Jul 16 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
通过python检测字符串的字母
Feb 18 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
python通过cython加密代码
Dec 11 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
JAVA/JSP学习系列之二
2006/10/09 PHP
社区(php&&mysql)一
2006/10/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
简单谈谈python的反射机制
2016/06/28 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
深入理解Python对Json的解析
2017/02/14 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python实现AES加密与解密
2019/03/28 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
物流仓管员工作职责
2014/01/06 职场文书
兽医医药专业求职信
2014/07/27 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
党员民主评议个人总结
2014/10/20 职场文书
典型事迹材料范文
2014/12/29 职场文书
初三语文教学反思
2016/03/03 职场文书