Задать вопрос
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, но можно ввести с маленькой буквы телефоны, и тогда всё-таки категория будет продублирована, чего не очень хочется.
Вроде мелочь, но не могу сориентироваться как сделать.
  • Вопрос задан
  • 197 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
deepblack
@deepblack Куратор тега Django
Можно заюзать 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. Для других СУБД придётся в коде приводить все входящие строки к одному регистру, перед записью в поле.
Ответ написан
Комментировать
@maksam07
Сделай слаг и уникальность по слагу проверяй. В слаге храни "техническое" обработанное имя. В этом варианте у тебя каждый раз новое обработанное будет сравниваться со слагами
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽