美文网首页
Django-orm

Django-orm

作者: 村东头老骥 | 来源:发表于2019-10-08 15:43 被阅读0次

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

相关文章

网友评论

      本文标题:Django-orm

      本文链接:https://www.haomeiwen.com/subject/przdyctx.html