唯一字段不区分大小写约束
Unique field case insensitive constraint
我试图确保所有标签在转换为小写时都是唯一的。但是,当我 运行 在以下模型上迁移时,我收到以下错误:
api.Tag: (models.E012) 'constraints' refers to the nonexistent field 'Lower(F(name))'.
class Tag(models.Model):
name = models.CharField(max_length=30)
class Meta:
constraints = [
models.UniqueConstraint(
fields=[Lower('name')],
name='unique_name'
),
]
由于django-4.0, you can work with expressions in a UniqueConstraint
[Django-doc],所以:
class Tag(models.Model):
name = models.CharField(max_length=30)
class Meta:
constraints = [
models.UniqueConstraint(
<strong>Lower('name')</strong>,
name='unique_name'
)
]
我试图确保所有标签在转换为小写时都是唯一的。但是,当我 运行 在以下模型上迁移时,我收到以下错误:
api.Tag: (models.E012) 'constraints' refers to the nonexistent field 'Lower(F(name))'.
class Tag(models.Model):
name = models.CharField(max_length=30)
class Meta:
constraints = [
models.UniqueConstraint(
fields=[Lower('name')],
name='unique_name'
),
]
由于django-4.0, you can work with expressions in a UniqueConstraint
[Django-doc],所以:
class Tag(models.Model):
name = models.CharField(max_length=30)
class Meta:
constraints = [
models.UniqueConstraint(
<strong>Lower('name')</strong>,
name='unique_name'
)
]