django 模型对象的 update() get_or_create() 的使用

update()

如果一个查询集是一个列表对象, 需要更新该列表对象里所有的单个数据集的数据,可以使用update()方法,而不须遍历整个查询集对象一个个逐一进行修改

1
2
3
obj_list = UserInfo.objects.all()
 
obj_list.update(money="10000000") # 不需要再调用save()进行手动的保存

 这样就把obj_list 里所包含的所有的数据集的money字段进行更新为 "10000000"了

注意update()方法不适用于当个查询集对象,单个查询集对象通过类似 query_set_obj.money =  "100000000", query_set_obj.save() 方式进行操作

 

get_or_update()

查询或者创建, 如果存在就是返回查询到对象,如果不存在就进行创建

一个通过给出的kwargs 来查询对象的便捷方法(如果你的模型中的所有字段都有默认值,可以为空),需要的话创建一个对象。

返回一个由(object, created)组成的元组,元组中的object是一个查询到的或者是被创建的对象, created是一个表示是否创建了新的对象的布尔值。

obj,created=Person.objects.get_or_create(first_name='John',last_name='Lennon',defaults={'birthday': date(1940, 10, 9)})

 当然,也可以通过在视图进行一个逻辑的判断,来确定查询不到数据时就进行创建,但是如果使用get_or_create() 往往会更加便捷

 

posted @   lowmanisbusy  阅读(1127)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示