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)
以上这篇django 数据库 get_or_create函数返回值是tuple的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Django数据结果集序列化并展示实现过程
示例为一对多的表关系,学生为多,老师为一,设置外键字段可以为空,也就是说关联的老师被删除该学生依然存在,只是相应字段留空 class Teacher(models.Model): name = models.CharField(max_length=10,verbose_name='老师名称') password = models.CharField(max_length=10,verbose_name='密码') class Meta: verbose_name_plural = '教师表'
-
Python探索之URL Dispatcher实例详解
URL dispatcher简单点理解就是根据URL,将请求分发到相应的方法中去处理,它是对URL和View的一个映射,它的实现其实也很简单,就是一个正则匹配的过程,事先定义好正则表达式和该正则表达式对应的view方法,如果请求的URL符合这个正则表达式,那么就分发这个请求到这个view方法中. 有了这个base,我们先抛出几个问题,提前思考一下: 这个映射定义在哪里?当映射很多时,如果有效的组织? URL中的参数怎么获取,怎么传给view方法? 如何在view或者是template中反解出UR
-
Django admin实现图书管理系统菜鸟级教程完整实例
Django 有着强大而又及其易用的admin后台,在这里,你可以轻松实现复杂代码实现的功能,如搜索,筛选,分页,题目可编辑,多选框. 简单到,一行代码就可以实现一个功能,而且模块之间耦合得相当完美. 不信,一起来看看吧!?用Django实现管理书籍的系统,并能在前台界面对书籍进行增删查改,筛选,分页,以及批量查询修改功能. 准备工作 #准备好你的数据库模型思维导图 0.新建一个Django项目,起名为books,并且同时新建一个应用book11 1.首先要设置models模块,根据思维导图,我
-
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
-
python使用threading获取线程函数返回值的实现方法
threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local. threading 模块提供的常用方法: threading.currentThread(): 返回当前的线程变量. threading.enumera
-
怎么通过onclick事件获取js函数返回值(代码少)
具体过程不做详细叙述,直接上代码: 写一个弹出框,绑定onclick事件是好像控制不了它的返回值.代码如下 function createBtn(){ for(var i = 0; i < _this.btn.length; i++){ var btn = document.createElement('span'); btn.id = 'btn_' + i; btn.innerHTML = _this.btn[i]; btn.style.padding = '5px 15px'; btn.st
-
Python函数返回值实例分析
本文实例讲述了Python的函数返回值用法.分享给大家供大家参考.具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返回值多方便啊,网上查了查,看到有返回多个值的方法. python 函数返回值有两种形式: 1 返回一个值. 2 返回多个值. 现看看返回一个值的吧. def firstvalue(a,b): c = a + b return c print firstvalue(1,2) #结果:3 再看看返回多个值的:
-
详解C语言函数返回值解析
详解C语言函数返回值解析 程序一: int main() { int *p; int i; int*fun(void); p=fun(); for(i=0;i<3;i++) { printf("%d\n",*p); p++; } return 0; }; int* fun(void) { static int str[]={1,2,3,4,5}; int*q=str; return q; } //不能正确返回 虽然str是在动态变量区,而该动态变量是局部的,函数结束时不保留的.
-
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
本文实例讲述了JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法.分享给大家供大家参考,具体如下: 主页面: <script type="text/javascript"> function SelectGroupCust() { var temp = window.showModalDialog("Default2.aspx?xx=" + Date(), "", "dialog
-
Linux Shell函数返回值
Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回. 示例: #!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 fi } echo echo "mytest 1" mytest 1 e
-
C语言 用指针作为函数返回值详解
C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数.下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: #include <stdio.h> #include <string.h> char *strlong(char *str1, char *str2){ if(strlen(str1) >= strlen(str2)){ return str1; }else{ return str2; } } int main(){ cha
-
如何让C++函数返回值死心塌地为你工作
本文主要研究的是C++函数返回值,你必须注意的问题,下面进入正题. C++太繁杂了,先接触C++后接触python这样的语言,你就再也不想碰它,因为,就连一个函数返回值都一大堆的说道,这里面的玄机,连工作三年的C++熟手都未必能准确的理解和运用. 归根结底,C++所面临的问题要求它提供各种各样的机制以保证性能,也许,这辈子也见不到C++能安全有效的自己进行内存垃圾回收..... 老程序猿都会提醒菜鸟,注意函数的返回值,因为,很可能,你的函数返回的数据在后续的使用中会出错.那么函数在返回值时要注意
-
关于numpy.where()函数 返回值的解释
近日用到numpy.where()函数,大部分使用方式都能理解,但是在看 >>> x = np.arange(9.).reshape(3, 3) >>> np.where( x > 5 ) (array([2, 2, 2]), array([0, 1, 2])) 的时候就懵逼了,为什么是两个数组? 后来才发现返回值给的其实是坐标,以上式为例,返回值其实是 x[2, 0], x[2, 1], x[2, 2] 即对于该数组x,返回值为两个数组a.b,其中满足条件的值在
随机推荐
- 基于C#动手实现网络服务器Web Server
- PHP实现算式验证码和汉字验证码实例
- 修改一行代码提升 Postgres 性能 100 倍
- 腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
- 实例详解JSON数据格式及json格式数据域字符串相互转换
- 轻松搞定VMware虚拟机的数据恢复
- PHP数据分析引擎计算余弦相似度算法示例
- GO语言并发编程之互斥锁、读写锁详解
- JDBCTM 指南:入门5 - ResultSet
- PHP开发中四种查询返回结果分析
- Code:loadScript( )加载js的功能函数
- javac、java打jar包命令实例
- 用shell脚本实现自动切换内网和外网实现高可用
- Jquery中Event对象属性小结
- javascript实现禁止复制网页内容汇总
- Android中在GridView网格视图上实现item拖拽交换的方法
- java 实现音乐播放器的简单实例
- Android应用中仿今日头条App制作ViewPager指示器
- 深入探索Java常量池
- python基于http下载视频或音频