uniqueconstraint django

在 Django 中,UniqueConstraint 是指在数据库中对于一个表的一组列中所有的值都不相同的限制。

例如,如果有一个名叫 Person 的模型,其中包含字段 first_name 和 last_name,需要确保两个人的 first_name 和 last_name 组合不能完全相同。这时可以使用 UniqueConstraint 来实现该限制:

from django.db import models
class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    class Meta:
        constraints = [
            models.UniqueConstraint(fields=['first_name', 'last_name'], name='unique_name')

在以上示例中,先定义了一个名为 unique_name 的唯一约束,然后通过在模型的 Meta 类中添加 constraints 属性来将其应用于 Person 模型。

需要注意的是,UniqueConstraint 与 unique=True 略有不同。唯一约束可以包含多个列,并且可以定义一个名称。除此之外,唯一约束可以用于 ForeignKey,而 unique=True 只能用于单个列和 CharField,BooleanField 和 DateField 上。

  •