如何在Django中锁定交易?

时间:2018-08-29 09:45:41

标签: django django-models django-rest-framework

在某些情况下,请求会使用相同的数据多次发送到服务器。我想使用Django的ORM将数据插入数据库。在该数据中,有一个字段“ field_imp”只能是唯一的。现在,它给了我integrity error,因为两个请求都试图将它们插入。如何避免这种情况?

如何一起发送多个请求?

使用terminator打开多个标签,编写相同的curl请求并发送。

Django中的模型:

class MyModel(models.Model)
    field_imp = models.TextField(unique=True)

我将Django rest Framework用于api生成,并将其serializers用于数据验证。

2 个答案:

答案 0 :(得分:1)

第一种方法是锁定表,但是效率低;

第二种方法是同时添加两个代码点:

  1. 添加存在检查到序列化器中。
  2. 添加try ... catch ...以获取完整性错误。

答案 1 :(得分:0)

我使用了get_or_create()的{​​{1}}接口。