我使用版本2.2
在Django中启动了新项目,该版本具有新的约束unique constraint,这与unique_together相同还是有其他区别?
答案 0 :(得分:0)
从docs
很明显改为将UniqueConstraint与constraints选项一起使用。
UniqueConstraint提供的功能比unique_together还要多。 将来可能不推荐使用unique_together。
答案 1 :(得分:0)
UniqueConstraint
具有有用的condition
。
只是一个例子。假设您只想检查有效产品的唯一性。
class Product(models.Model):
is_active = models.BooleanField(default=False)
category_name = models.CharField(max_length=64)
name = models.CharField(max_length=64)
class Meta:
constraints = [
models.UniqueConstraint(fields=['category_name', 'name'],
condition=models.Q(is_active=True),
name='category_and_name_uniq')
]