首頁 > 後端開發 > Python教學 > Django的update和save()同時作用的bug

Django的update和save()同時作用的bug

高洛峰
發布: 2016-11-22 14:55:16
原創
1614 人瀏覽過

save() 預設保存後會看到sql語句中更新了所有字段,而save的值是之前獲取時候的字段值,是緩存下來的,並不一定最新,可能中途其他地方被更新過

UPDATE `pxb_sx2_test` SET `user_id` = 335, `catalog_id` = 12558, `level_id` = 4, `level_status` = 0, `position` = 440, `type` = 2, `add_time` = '2016-09-14 17:44:07', `update_time` = '2016-09-14 17:53:17.077520' WHERE `pxb_sx2_test`.`id` = 175;
登入後複製

update 更新指定欄位

UPDATE `pxb_sx2_test` SET `position` = 441 WHERE `pxb_sx2_test`.`id` = 1751;
登入後複製

如果兩個同時用,或者不同地方,但可能會同時更新的話會幾率性出現更新了,但是資料庫中值並沒有改變。其實是update更新後,剛好save了過時的欄位值,導致看起來沒有更新。 django 1.5之後save可以加入參數只更新指定欄位。參考

 test.position = 441
 test.save(update_fields=['position'])
登入後複製


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板