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
假设我定义了以下 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 中实现
您可以使用自动对称的 ManyToMany 字段:ManyToManyField Django Docs