[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