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.