1998or2
@1998or2
Агрессивное программирование

Как не учитывать регистр в моделях Джанго?

Подскажите, как в модели django сделать так, чтоб регистр не учитывался?
Например:

Tag = models.CharField(max_length=15, verbose_name='Тег', unique=True)
Category = models.ForeignKey(Post, max_length=15, verbose_name='Категррия', Unique=True)


Поля заполняются из админки. Когда ввожу например категория Телефоны, то второй раз нельзя ввести Телефоны благодаря Unique=True, но можно ввести с маленькой буквы телефоны, и тогда всё-таки категория будет продублирована, чего не очень хочется.
Вроде мелочь, но не могу сориентироваться как сделать.
  • Вопрос задан
  • 48 просмотров
Решения вопроса 3
Andrew_Pinkerton
@Andrew_Pinkerton
Не так страшны первые 99%, как оставшиеся 99%
Можно заюзать citext-fields

from django.db import models
from django.contrib.postgres.fields import CITextField

class YourModel(models.Model):
    Tag = CITextField()

Естественно работает только с postgresql
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Если PostgreSQL, то вместо CharField можно использовать CICharField. Для других СУБД придётся в коде приводить все входящие строки к одному регистру, перед записью в поле.
Ответ написан
Сделай слаг и уникальность по слагу проверяй. В слаге храни "техническое" обработанное имя. В этом варианте у тебя каждый раз новое обработанное будет сравниваться со слагами
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы