如何使用django rest框架安全地增加数据库?

时间:2018-02-05 11:52:50

标签: sql django transactions django-rest-framework increment

我试图为我的应用制作一个喜欢/不同的系统,从而面临一些麻烦。

当我喜欢/不同于正常的游戏中时光倒流时,它没关系,但是当我以非常短的频率点击多次(例如在10秒内点击20次)时,我的计数器就会被打扰。

通常情况下,我测试我的计数器应始终具有值1或0,因为我是唯一一个进行操作的人。然而,当我快速点击多次时,我的休息api无法遵循节奏,我得到一个有7或8个喜欢的计数器。

我尝试了多种解决方案。首先添加django附带的模型事务。作为装饰者:

@transaction.atomic

或手动:

     with transaction.atomic():
     #do stuff

我还尝试使用F()直接从数据库增加:

votes=F("votes") + 1

似乎没什么用。

有什么建议吗?

0 个答案:

没有答案