Нечувствительное к регистру ограничение уникального поля
Я пытаюсь обеспечить уникальность всех тегов при преобразовании в нижний регистр. Однако, когда я запускаю миграцию на следующей модели, я получаю следующую ошибку:
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, вы можете работать с выражениями в UniqueConstraint [Django-doc], так:
class Tag(models.Model):
name = models.CharField(max_length=30)
class Meta:
constraints = [
models.UniqueConstraint(
Lower('name'),
name='unique_name'
)
]