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.