Django QuerySet API
不返回 QuerySet
updata_or_create(defaults,**kwargs)
# code
# defaults 是用来更新的
# kwargs是用来查询的
defaults = {
'title': 'Redis实战',
'price': 100
}
query_update_or_create = Book.objects.update_or_create(defaults=defaults, title='Redis实战', price=99)
print(query_update_or_create)
print(query_update_or_create[0].price) # 100
(<Book: Redis实战>, False) //
"""
返回值的说明 :
返回类型元祖
- <Book: Redis实战> # 对象 该对象 title='Redis实战', price=99 的筛选的结果
- 布尔值
- True 创建了新的对象 返回的对象时创建的新的对象
- False 返回的是数据中搜索的存在的对象搜索条件来源于 **kwargs 返回的是数据库中存在的对象
注意: 当返回的结果为 False 的时候
- 此时会将
defaults = {
'title': 'Redis实战',
'price': 100
}
中的值进行更新.上述的例子中将价格更新到100元
"""
# 创建
# - kwargs是用来筛选数据是否存在
# 查询一个不存在的数据,如果不存在,则使用 defaults 中的键值对进行创建
defaults = {
'title': 'Redis实战2',
'price': 200
}
query_update_or_create = Book.objects.update_or_create(defaults=defaults, title='Redis实战', price=199)
print(query_update_or_create)
print(query_update_or_create[0].price)
(<Book: Redis实战2>, True) # True 创建了一个新的对象
200
网友评论