网络编程
位置:首页>> 网络编程>> 数据库>> django 数据库 get_or_create函数返回值是tuple的问题

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com