user = User.object.filter(username='xxx', age=30).update(age=20)
user = User.object.get(username='xxx')
# 此时 age=30
user.email = '[email protected]'
user.save()
1
aapeli 280 天前
# select_for_update
``` user = User.objects.select_for_update().get(username='xxx') # 此时 age=30 user.email = '[email protected]' user.save() ``` |
3
wuwukai007 OP @aapeli 这里两个程序更新的不同字段,类似 update user set email='xx' where username='xx', 另一个 update user set age=30 where username='xx' ,这个没必要用锁,互相不影响的
|
4
aapeli 280 天前
提一点:楼主的 update_fields 可以解决不同字段同时更新的问题,但可能无法解决并发更新相同字段的问题
|
5
fantathat 280 天前 via iPhone
是的呀
|
6
vishun 280 天前
用乐观锁
|
7
dicc 272 天前 1
所以不要用 save ,用 update ,
update 只更新某个字段,save 是全部更新为当前对象的信息 |