Django object.get_or_create()
使用get_or_create()
-
使用方式
user, b = User.objects.get_or_create(u_id=1, name="张三", defaults={'address':'上海'}) print(user)
-
等同于
users = User.objects.get(u_id=1, name="张三") if user: print(user) else: user = User.objects.create(u_id=1, name="张三", address="上海") print(user)
关于get_or_create()
说明
-
get_or_create
顾名思义,查询或者创建一条数据,首先是执行的时候首先会去查询有没有这个值,如果有就返回,没有就创建。 -
get_or_create
会返回一个tuple,第一个值是查到或者创建的数据,第二个值是一个布尔,表示是否执行了创建操作。 - 在进行查询的时候和使用
get
查询类似,当查到超过一条数据的时候会触发MultipleObjectsReturned
。 - 创建的时候也和使用
create
创建类似。 -
如果你正在使用MySQL,请确保使用READ COMMITTED 隔离级别而不是默认的REPEATABLE READ,否则你将会遇到get_or_create 引发IntegrityError 但对象在接下来的get() 调用中并不存在的情况
。
参数
-
**kwargs
,数据的查询条件。 -
defaults
,如果没有查到数据,创建数据时提供的填充数据。
参考链接:时光不写博客

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Django-SerializerMethodField
目标 有一个status状态,后端存的是0、1,前端需要展示为否、是。 后段返回给前端时,直接返回否、是,前端读取展示,不需要判断。 实现方法1,加字段 加一个只读字段status_zh,根据status判断赋值后返回给前端,前端使用status_zh 例: # models.py ###### from django.db.models import Model, BooleanField class TestModel(Model): status = BooleanField(default=False, name='status') @property def status_zh(self): status_ = "是" if self.status else "否" return status_ ###### # seriailzer.py ###### from models import TestModel from rest_framework import serializers from rest_framework.serializers import Seria...
- 下一篇
既生synchronized,何生volatile
GitHub 6.6k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 6.6k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 6.6k Star 的Java工程师成神之路 ,真的确定不来了解一下吗? 在我的博客和公众号中,发表过很多篇关于并发编程的文章,之前的文章中我们介绍过了两个在Java并发编程中比较重要的两个关键字:synchronized和volatile 我们简单回顾一下相关内容: 1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。(再有人问你Java内存模型是什么,就把这篇文章发给他) 2、synchronized通过加锁的方式,使得其在需要原
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- Mario游戏-低调大师作品
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 2048小游戏-低调大师作品
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库