我選擇了更新一些對象,然後在其上保持數據庫對象的鎖後提交
obj = Model.objects.select_for_update().get(id=someID)
obj.somefield = 1
obj.save()
但我仍然需要執行的操作,以保持FOR UPDATE
鎖定此對象。 PostgreSQL文檔說,FOR UPDATE
鎖將活到事務結束,這將結束,因爲保存將觸發提交。 即使我手動管理提交,我需要保存一些信息到數據庫(爲此我需要提交)。
那麼,在這種情況下我能做些什麼呢? 如果我將再次選擇對象,則在設置新鎖之前,其他某個進程可能會對此對象執行更改。
(我使用Django 1.7和PostgreSQL 9.3)