django 数据库 get_or_create函数返回值是tuple的问题


Posted in Python onMay 15, 2020

get_or_create函数比较好用。

如果查询到就返回,如果没查询到就向数据库加入新的对象。

e.g.

size = Size.objects.get_or_create(sizeName=size_text)

注意:返回的是tuple,:(对象, 是否是创建的)

e.g. (size, created)

补充知识:Django update_or_create 注意事项

需求: model 修改数据库数据,数据存在则更新,不存在则保存

update_or_create 用法:

update_or_create(defaults=None, **kwargs)

kwargs: 来更新对象或创建一个新的对象。

defaults: 是由 (field, value) 对组成的字典,用于更新对象。

返回一个由 (object, created)组成的元组,

object: 是一个创建的或者是被更新的对象,

created: 是一个标示是否创建了新的对象的布尔值。

update_or_create: 方法通过给出的kwarg

try:
  obj = Person.objects.get(first_name='John', last_name='Lennon')
  for key, value in updated_values.iteritems():
    setattr(obj, key, value)
  obj.save()
except Person.DoesNotExist:
  updated_values.update({'first_name': 'John', 'last_name': 'Lennon'})
  obj = Person(**updated_values)
  obj.save()
# 如果模型的字段数量较大的话,这种模式就变的非常不易用。上面的示例可以用 update_or_create() 重写:
obj, created = Person.objects.update_or_create(
  first_name='John', last_name='Lennon', defaults=updated_values)

以上这篇django 数据库 get_or_create函数返回值是tuple的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的全局变量用法分析
Jun 09 Python
Django中使用locals()函数的技巧
Jul 16 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
python3实现点餐系统
Jan 24 Python
详解Python循环作用域与闭包
Mar 21 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Pandas数据分析的一些常用小技巧
Feb 07 Python
python反编译教程之2048小游戏实例
Mar 03 Python
重写django的model下的objects模型管理器方式
May 15 #Python
Python基于pip实现离线打包过程详解
May 15 #Python
Django在Model保存前记录日志实例
May 14 #Python
django 连接数据库出现1045错误的解决方式
May 14 #Python
Django ORM filter() 的运用详解
May 14 #Python
Django设置Postgresql的操作
May 14 #Python
numpy矩阵数值太多不能全部显示的解决
May 14 #Python
You might like
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
js实现本地图片文件拖拽效果
2017/07/18 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python中变量交换的例子
2014/08/25 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python基于locals返回作用域字典
2020/10/17 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
实习生自荐信范文
2013/11/13 职场文书
医大实习自我鉴定
2013/12/07 职场文书
交通事故协议书范文
2014/04/16 职场文书
小学生手册家长评语
2014/04/16 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
python中subplot大小的设置步骤
2021/06/28 Python
python井字棋游戏实现人机对战
2022/04/28 Python