update_or_create()
- update_or_create(默认值=无,** kwargs)¶
使用给定更新对象的便捷方法,kwargs必要时创建新对象。这defaults是用于更新对象的(字段,值)对的字典。值中的值defaults可以是callables。
返回一个元组,其中是创建或更新的对象,是一个布尔值,指定是否创建了新对象。(object, created)objectcreated
该update_or_create方法尝试根据给定的数据从数据库中获取对象kwargs。如果找到匹配项,则会更新defaults字典中传递的字段 。
这意味着作为boilerplatish代码的快捷方式。例如:
 defaults = {'first_name': 'Bob'}
 try:
     obj = Person.objects.get(first_name='John', last_name='Lennon')
     for key, value in defaults.items():
         setattr(obj, key, value)
     obj.save()
 except Person.DoesNotExist:
     new_values = {'first_name': 'John', 'last_name': 'Lennon'}
     new_values.update(defaults)
     obj = Person(**new_values)
     obj.save()
随着模型中字段数量的增加,这种模式变得非常笨拙。上面的例子可以update_or_create()像这样重写:
obj, created = Person.objects.update_or_create(
first_name='John', last_name='Lennon',
defaults={'first_name': 'Bob'},
)
update_or_create()的更多相关文章
- django ORM中update_or_create功能,如果只要匹配某一特定字段呢
		今天发现的需求,在官方文档找到说法: In English, that means start with any non-'defaults' keyword argument that doesn’ ... 
- django中使用Model的update_or_create函数时报错
		官方使用示例: obj, created = Person.objects.update_or_create( first_name='John', last_name='Lennon', defau ... 
- Django ORM中使用update_or_create功能再解
		以前,我解过这个问题,现在百度搜索,发了像也只能找到我这个帖子. https://www.cnblogs.com/aguncn/p/4922654.html 今天,看了看官方文档,关于这个update ... 
- django update_or_create
		update_or_create question.votes.update_or_create(user=request.user, defaults={"value": val ... 
- [django]update_or_create使用场景
		update_or_create 作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新. update_or_create用法与密码存储实例 create方法 如果id是None ... 
- get_or_create update_or_create
		django/query.py at master · django/django https://github.com/django/django/blob/master/django/db/mod ... 
- [原创]django+ldap实现单点登录(装饰器和缓存)
		前言 参考本系列之前的文章,我们已经搭建了ldap并且可以通过django来操作ldap了,剩下的就是下游系统的接入了,现在的应用场景,我是分了2个层次,第一层次是统一认证,保证各个系统通过ldap来 ... 
- Django之Model操作
		Django之Model操作 本节内容 字段 字段参数 元信息 多表关系及参数 ORM操作 1. 字段 字段列表 AutoField(Field) - int自增列,必须填入参数 primary_ke ... 
- django之一些feature
		前端之django一些feature 本节内容 cookie session 跨站请求保护 分页 序列化 model模块 CBV和FBV 模板渲染对象 1. cookie cookie 是一种发送到客 ... 
随机推荐
- VMware要不要装在固态SSD上,虚拟机系统文件要不要放固态SSD上,虚拟机伤不伤固态SSD
			先说结论:VMware建议装在固态上运行快,系统文件最好放在机械硬盘上(有钱除外),虚拟机会伤固态. 今天在学淘淘商城中的搜索项目,克隆了一个虚拟机,这个虚拟机开机贼慢,令人无法忍受,我觉得我再也受不 ... 
- Nginx入门基础(一)
			Nginx介绍 Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器. 官方测试Nginx能够支撑5万并发链接,并且cpu.内存等资源消耗却非常低,运行 ... 
- Sprite/MovieClip的Enter_Frame事件,不受addChild/removeChild影响
			简单点讲:Sprite或MovieClip对象一旦为其添加了Enter_Frame事件监听,对应的Enter_Frame处理函数将会马上被调用,并一直执行下去(不管你是否将其addChild到显示列表 ... 
- day52类型转换 运算符 流程控制
			0.复习 1.导入 <div id="div1" onclick="this.style.color = 'red';">12345</div ... 
- intellij idea在project下同时打开多个工程(maven工程)
			前提:我的工程都是maven工程 我有两个工程,一个是接口contract,一个是接口的具体实现server.想要同时在一个工作空间下展示,方便调试开发,加载后效果如下 idea有worksp ... 
- python 编程
			1.一个str A,列表B的所有元素都在A中时返回True A = 'HeooWoldHomeUbuntuCentOSFedora'B = ['Ubuntu', 'CentOS', 'Home', ' ... 
- PHP 浮点型转整型的一个奇怪现象
			起因 最近通过一个学长的题了解php弱类型的时候,发现了一个奇怪的现象. 正文 主要问题在这样一段代码: $c=(int)((0.1+$b)*10); 当$b=0.6,0.8以及其他值的时候都正常 将 ... 
- ireport使用总结
			ireport使用基础经验总结: 1.设置打印文件的纸张类型和大小 编辑->报表属性 2.设置纸张大小和空间(用于编辑打印内容) 鼠标右键空白处->栏的属性 以上所有部分共同组成打印 ... 
- Java-HashMap、HashSet、hashTable
			HashMap:key:可null,重复的key对应的value会出现后面覆盖前面的情况.value:可null; 引用:数组,数组中存链表. HashSet使用HashMap的实现存储数据,所以有H ... 
- Centos 安装 android sdk(转)
			原文地址: https://blog.csdn.net/kai_1215/article/details/80731099 这个后面有个指令没有运行起来,我做了一些修改: 原文:sdkmanager ... 
