Django 强制一对外键的唯一组合

Django Enforce unique combination of pair of foreign keys

假设我定义了以下 Django 模型:

class Model(models.Model):
    model_id = models.IntegerField(default=0, unique=true)
    content = models.TextField()

class ModelRelation(models.Model):
    relation_id = models.IntegerField(default=0, unique=true)
    model_id1 = models.ForeignKey(Model, on_delete=models.CASCADE)
    model_id2 = models.ForeignKey(Model, on_delete=models.CASCADE)

在 Meta 的约束选项中使用常规 UniqueConstraint class,
model_id1 = 1 和 model_id2 = 2 的外键对允许与
共存 model_id1 = 2 和 model_id2 = 1.

的外键对

如何在 Django 中实现 第一个答案中的行为? 你甚至如何在 Django 中创建唯一索引?

您可以使用自动对称的 ManyToMany 字段:ManyToManyField Django Docs