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实现apahce网站日志分析示例
Apr 02 Python
Python实现的购物车功能示例
Feb 11 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
python函数的万能参数传参详解
Jul 26 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
keras实现多种分类网络的方式
Jun 11 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
python爬虫scrapy框架的梨视频案例解析
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静态类的原罪详解
2013/05/06 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
php实现Mysql简易操作类
2015/10/11 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
Python基于当前时间批量创建文件
2020/05/07 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
实习评语
2013/12/16 职场文书
个人收入证明范本
2014/01/12 职场文书
签约仪式策划方案
2014/06/02 职场文书
委托书范本
2014/09/13 职场文书
前台文员岗位职责
2015/02/04 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python