我的模型:
class Order(models.Model):
property_a = models.CharField()
property_b = models.CharField()
property_c = models.CharField()
许多用户将在短时间内通过管理员更改页面访问给定记录,因此我遇到了并发问题:
用户 1 和 2 同时打开更改页面。假设加载页面时所有值都是空白的。用户 1 将 property_a 设置为“a”,将 property_b 设置为“b”,然后保存。一秒钟后,如果用户 2 更改属性 b 并且 c 然后保存,它将悄悄地覆盖用户 1 的所有值。在这种情况下,property_a 将恢复为空白,而 b 和 c 将是用户 2 输入的任何值。
我需要有关如何处理此问题的建议。如果我必须在模型中有一个版本字段,我如何将它传递给管理员,我在哪里进行检查,以便我可以优雅地通知用户他们的更改无法保存,因为另一个用户修改了记录?有没有比只向用户返回错误更无缝的方法?