django 数据库 get_or_create函数返回值是tuple的问题
作者:djshichaoren 发布时间:2024-01-27 09:47:22
标签:django,get,or,create,返回值,tuple
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)
来源:https://blog.csdn.net/djshichaoren/article/details/77864191


猜你喜欢
- 项目中用到了限流,受限于一些实现方式上的东西,手撕了一个简单的服务端限流器。服务端限流和客户端限流的区别,简单来说就是:1)服务端限流对接口
- Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。方法的格式
- 代码如下:---ntext数据类型字符替换 create table tt ( sid INT IDENTITY(1,1), c
- 具体的网址倒是没保存,可是我这个人习惯把好的代码记起方法保存下来,现在贴出来,希望原作者体谅。 ---上个月月初第一天 select CON
- 因笔者个人需要需要在本机安装Mysql,先将安装过程记录如下,希望对他人有所参考。 一、下载软件1. 进入mysql官网,登陆自己
- 有时候我们需要判断某一个IP地址是否属于一个网段,以决定该用户能否访问系统.比如用户登录的IP是218.6.7.7,而我们的程序必须判断他是
- 黑体是视觉设计师常用的一款字体,特别是针对广告的 Banner 等。根据 * 的相关介绍,有关黑体的定义可以认为:黑體与白体
- 代码很简洁,这里就不多废话了,直接上源码html代码 <!doctype html> <html>
- 多进程&多线程服务端:多进程和多线程的开启方式相同。缺点:<1> 由于Cpython的GIL,导致同一时间无法运行多个线
- 我就废话不多说了,直接上代码吧!import numpy as npa = [2,4,6,8,10]average_a = np.mean(
- 最近想备份网站,但是php下载文件的大小是有大小限制的,而我也懒得装ftp再下载了,就想着暂时弄个二级域名站,然后用python(pytho
- 一、安装pip install pymongo二、连接数据库import pymongo# 方式一client = pymongo.Mong
- 前言喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事
- 方法一:(by yangedie )这几天刚刚做了这个东西,有网友问到,所以分享一下。ie6、firefox2 通过,麻烦有ie7的网友测试
- 今天我升级MYSQL到5.1的时候遇到的。写出来共享以下。1、[root@localhost mysql]# scripts/mysql_i
- 在python开发中,经常会出现调用子文件夹下的py模块如上图,如果在test.py文件中,要调用meeting文件夹下面的huodongs
- python 升级后导致不能使用原来的pip命令windows平台cmd中敲命令:python -m ensurepip得到pip的setu
- 1、net/http爬虫net/http配合正则表达式爬虫。package mainimport ("fmt""
- Session每台电脑访问服务器,都有独立的session,key值都一样,内容不一样。1.session保存在服务器上。2.session
- Python语言的崛起让大家对web、爬虫、数据分析、数据挖掘等十分感兴趣。数据挖掘就业前景怎么样?关于这个问题的回答,大家首先要知道什么是