Пустая строка тоже уникальная, null попробуй
нул - не по феншую.
Констрейнт сделай тогда, без уникальности
В доке к базе глянь как кастомные писать
да валидатор на до делать просто на каждое поле, мне кажется.
CREATE UNIQUE INDEX idx_unq_tab_email ON tab(email) WHERE TRIM(email) <> '';
А оно в админке джанго будет ругаться, если неуник вводишь?
Нет, будет ошибка
Так и я про то же. Валидатор надо писать.
В паре с unique для строк это нормальный вариант, че тебе не нравится, хз
Так в админке надо выводить осмысленные сообщения. А ты предлагаешь - ну, я не очень представляю себе, как этим будут юзеры пользоваться.
Я тебе конкретно на твой вопрос ответ дал
Тут вообще все просто решается выносом перевода в отдельную таблицу и подключения её как инлайна
зачем такое надо? Вот хоть убей не понимаю. ну, посуди сам - если поле не пустое, то кинуть индекс. этим вообще как-то можно пользоваться? да и зачем? я хочу нормально видеть, какая у меня схема базы данных. В постгресе: \d table_name Не хочу я никак корежить базу данных динамически.
Вот это здравая мысль. Спасибо. Попробую.
Не по феншую,зато работает) замечу что даже в доках разработчики указываю этот случай как приемлемый для null в строке.
Я стараюсь не применять null для строковых полей.
Ты доку посмотрел?
Партиал констрейнты это жир)
Вот дока: https://docs.djangoproject.com/en/4.0/ref/models/fields/#null "Avoid using null on string-based fields such as CharField and TextField. "
Начни со слов One exception
Выше грамотнее решение предложили.
Ну чтож, видать разработчики джанги не достаточно грамотные =(
Мы не доку обсуждаем ведь. А конкретный случай.
Ну ты конкретный случай, а я тебе не на твою проблему отвечал, а на утверждение по поводу null в строке)
В доке сказано: нул в строке не по феншую. Исключения тоже не по феншую, но они есть. Потому что такова жизнь. Поэтому о них отдельно и сказали. Что тут обсуждать?
Перечитай мой первый ответ тебе.
Слушай, давай уж закончим эту тему. Потому что тут обсуждать нечего.
Обсуждают сегодня