首页 > 解决方案 > 如何在 Django 中锁定交易?

问题描述

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

如何同时发送多个请求?

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

Django中的模型:

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

我正在使用Django rest Frameworkapi 生成及其serializers数据验证。

标签: djangodjango-modelsdjango-rest-framework

解决方案


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

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

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

推荐阅读