我有三个模型问题,提交,UserResult。用户提交问题的答案,该答案由系统评分并存储在提交中。
一个问题的用户得分在他/她的所有提交中最高。这个分数保存在一个名为UserResult的模型中(它有三个字段,一个是Question的外键,另一个是User,一个是整数的分数)
我想要做的是确保保存提交时相关的UserResult已更新。实际上,最好不要在结果未更新时存储提交。因此,只有在UserResult正确更新时才应保存提交。所以整个过程应该是原子的。处理这个问题的正确方法是什么?
答案 0 :(得分:3)
在提交的save
方法中,请调用UserResult
update
方法。并将提交的save
方法标记为@transaction.atomic
。然后,如果在更新UserResult时发生错误,则提交不会被保存。