update_or_create

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

update_or_create用法与密码存储实例

create方法

如果id是None 也会被创建成功
[django]update_or_create使用场景

前端一般带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例子

[django]update_or_create使用场景
当然这种的话, 可以常规的create和update来操作就好了. 因为是否带id.

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

相关文章:

  • 2021-10-26
  • 2022-12-23
  • 2021-06-16
  • 2021-08-30
  • 2021-11-29
  • 2021-10-03
  • 2021-11-01
  • 2018-06-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-27
  • 2021-08-09
  • 2018-03-28
相关资源
相似解决方案