在Django中,可以使用models.UniqueConstraint
类来创建联合唯一索引。这个类允许你在一个或多个字段上创建唯一约束,以确保这些字段的组合值在数据库表中是唯一的。
下面是一个使用models.UniqueConstraint
创建联合唯一索引的示例:
from django.db import models
class MyModel(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.CharField(max_length=100)
class Meta:
constraints = [
models.UniqueConstraint(fields=['field1', 'field2'], name='unique_field1_field2')
]
在上面的例子中,MyModel
模型具有两个字段 field1
和 field2
。通过将这两个字段传递给 fields
参数,我们创建了一个名为 'unique_field1_field2'
的唯一约束。
这将确保在数据库表中,field1
和 field2
的组合值是唯一的。如果尝试创建重复的组合值,Django会引发django.db.utils.IntegrityError
异常。
注意:在使用联合唯一索引时,如果某个字段允许为NULL
,则它的null=True
属性必须设置为True
,否则将会引发完整性错误。