【发布时间】:2014-02-04 13:32:17
【问题描述】:
我正在用 Django 开发一个游戏,其中叛军的数量会在回合变化后更新。 Rebels 在 (MySQL) 数据库中以 0 到 100 的整数表示。
当我保存时,会发生这种情况:
print world.rebels
>>> 0
rebstab = 0
world.rebels += rebstab
world.save()
print world.rebels
>>> 0
但是,当我使用 F() 表达式时(据我所知,我应该避免出现竞争条件),会发生这种情况:
print world.rebels
>>> 0
rebstab = 0
world.rebels = F('rebels') + rebstab
world.save()
print world.rebels
>>> 100
发生了什么事?
【问题讨论】:
标签: mysql django django-models