原子模型保存在django

时间:2015-05-28 19:41:03

标签: django atomicity

我有三个模型问题,提交,UserResult。用户提交问题的答案,该答案由系统评分并存储在提交中。

一个问题的用户得分在他/她的所有提交中最高。这个分数保存在一个名为UserResult的模型中(它有三个字段,一个是Question的外键,另一个是User,一个是整数的分数)

我想要做的是确保保存提交时相关的UserResult已更新。实际上,最好不要在结果未更新时存储提交。因此,只有在UserResult正确更新时才应保存提交。所以整个过程应该是原子的。处理这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

在提交的save方法中,请调用UserResult update方法。并将提交的save方法标记为@transaction.atomic。然后,如果在更新UserResult时发生错误,则提交不会被保存。