如何在 Django 中更新多个条目的唯一字段

use*_*000 5 django django-models

我有一个与此类似的简单 Django 模型:

class TestModel(models.Model):
    test_field = LowerCaseCharField(max_length=20, null=False,
                                verbose_name='Test Field')
    other_test_field = LowerCaseCharField(max_length=20, null=False, unique=True,
                                verbose_name='Other Test Field')
Run Code Online (Sandbox Code Playgroud)

请注意 other_test_field 是一个唯一字段。现在我还存储了一些数据,如下所示:

[
    {
        test_field: "object1",
        other_test_field: "test1"
    },
    {
        test_field: "object2",
        other_test_field: "test2"
    }
]
Run Code Online (Sandbox Code Playgroud)

我现在要做的就是切换这两个对象中的 other_test_field 字段,以便第一个对象具有“test2”,而第二个对象具有用于 other_test_field 的“test1”。我如何在保持独特性的同时做到这一点?最终,我试图批量更新数据,而不仅仅是交换两个字段。

由于违反唯一约束,任何以串行方式更新数据的操作都会遇到 IntegrityError,而且我不知道在将其添加回来之前暂时删除唯一约束的好方法,对于这一个操作。有什么建议?