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 相关文章推荐
python3中set(集合)的语法总结分享
Mar 24 Python
Python实现类的创建与使用方法示例
Jul 25 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
python机器学习之KNN分类算法
Aug 29 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
python实现合并两个排序的链表
Mar 03 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
keras 指定程序在某块卡上训练实例
Jun 22 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php cli配置文件问题分析
2015/10/15 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
React diff算法的实现示例
2018/04/20 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
分享python数据统计的一些小技巧
2016/07/21 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
Python多进程写入同一文件的方法
2019/01/14 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
python中常见错误及解决方法
2020/06/21 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
青年创业培训欢迎词
2014/01/08 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
迎新生晚会主持词
2015/06/30 职场文书
2016年教代会开幕词
2016/03/04 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL