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

 更新时间:2020年05月15日 09:11:36   作者:djshichaoren  
这篇文章主要介绍了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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

相关文章

  • python3 模拟登录v2ex实例讲解

    python3 模拟登录v2ex实例讲解

    下面小编就为大家带来一篇python3 模拟登录v2ex实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 代码讲解Python对Windows服务进行监控

    代码讲解Python对Windows服务进行监控

    本篇文章给大家分享了通过Python对Windows服务进行监控的实例代码,对此有兴趣的朋友可以学习参考下。
    2018-02-02
  • 详解分布式系统中如何用python实现Paxos

    详解分布式系统中如何用python实现Paxos

    提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代 名词,因为当前最常用的一批共识算法都是基于它改进的。比如,Fast Paxos 算法、 Cheap Paxos 算法、Raft 算法、ZAB 协议等等。
    2021-05-05
  • python3 sleep 延时秒 毫秒实例

    python3 sleep 延时秒 毫秒实例

    这篇文章主要介绍了python3 sleep 延时秒 毫秒实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python 创建子进程模块subprocess详解

    Python 创建子进程模块subprocess详解

    这篇文章主要介绍了Python 创建子进程模块subprocess详解,本文详细讲解了subprocess模块的方法、参数、使用实例等,需要的朋友可以参考下
    2015-04-04
  • Python使用pandas对数据进行差分运算的方法

    Python使用pandas对数据进行差分运算的方法

    今天小编就为大家分享一篇Python使用pandas对数据进行差分运算的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python开发入门——set的使用

    python开发入门——set的使用

    这篇文章主要介绍了python set的使用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • Python 中 threading.Thread.join() 的使用方法示例详解

    Python 中 threading.Thread.join() 的使用方法示例详解

    threading.Thread.join()用于阻塞当前线程,直到调用它的线程对象执行完成或者超时,在Python中,想要充分利用多线程的优势,就需要对threading模块中的 Thread 类了解,这里有一个非常简单的多线程程序,帮助理解 threading.Thread.join 方法,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • python getopt模块使用实例解析

    python getopt模块使用实例解析

    这篇文章主要介绍了python getopt模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python版简单工厂模式

    python版简单工厂模式

    这篇文章主要为大家详细介绍了python版简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10

最新评论