[django]update_or_create使用场景


update_or_create

作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新.

update_or_create用法与密码存储实例

create方法

如果id是None 也会被创建成功

前端一般带id--create
不带id--update

能否将create和update来合并呢?

传统的create和update

  • 正常的场景
    前端post来数据, 无id则创建, 有id则更新.
    想来也没啥问题.

  • diy的场景

obj, created = Person.objects.update_or_create(
    first_name='John', last_name='Lennon',
    defaults={'first_name': 'Bob'},
)

这就要求model, unique_together ('last_name', 'first_name')
  • update_or_create
这个规则是: 

update_or_create(defaults=None, **kwargs)

执行规则: filter kwargs,create/update defaults
返回值为元组: (object, created),object为新建或者更新的对象,created为一个布尔值,表示是新建还是更新,True为新建

使用示例: password例子


当然这种的话, 可以常规的create和update来操作就好了. 因为是否带id.

参考:
Django 之 查看执行的sql语句


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM