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 2023-08-15 11:29:19 +08:00
# select_for_update
``` user = User.objects.select_for_update().get(username='xxx') # 此时 age=30 user.email = '[email protected]' user.save() ``` |
2
aapeli 2023-08-15 11:29:53 +08:00
|
3
wuwukai007 OP @aapeli 这里两个程序更新的不同字段,类似 update user set email='xx' where username='xx', 另一个 update user set age=30 where username='xx' ,这个没必要用锁,互相不影响的
|
4
aapeli 2023-08-15 11:32:03 +08:00
提一点:楼主的 update_fields 可以解决不同字段同时更新的问题,但可能无法解决并发更新相同字段的问题
|
5
fantathat 2023-08-15 13:46:52 +08:00 via iPhone
是的呀
|
6
vishun 2023-08-15 13:57:59 +08:00
用乐观锁
|
7
dicc 2023-08-23 15:57:57 +08:00 1
所以不要用 save ,用 update ,
update 只更新某个字段,save 是全部更新为当前对象的信息 |