Найти - Пользователи
Полная версия: Вопрос по модели для таблицы
Начало » Django » Вопрос по модели для таблицы
1
ivn
Добрый день.
Хочется создать таблицу в которой будет поле models.BooleanField(default=False) и что бы это поле могло иметь значение True ТОЛЬКО ДЛЯ ОДНОЙ ЗАПИСИ из всей таблицы.
Думается сделать в момент save выборку по фильтру True из этой таблицы и менять значение на False, а эту запись сохранять в True.

Может быть есть какое то готовое решение?
Спасибо.
Papa_Svin
ivn
Может быть есть какое то готовое решение?
Решение на уровне СУБД или на уровне Django? Понятно, что если в Джанге и есть что-то готовое (хотя его там нет), то оно будет делать что-то такое, что вы и предлагаете. Ну это же две строчки кода, чего там искать готового?
ivn
Мне кажется лучше валидатор настроить.
Мб на уровне СУБД?, раз уж создал тему.
Papa_Svin
ivn
Мб на уровне СУБД?, раз уж создал тему.
Ну, например, триггер завести
ivn
Papa_Svin
Подскажите, где посмотреть про триггеры (что такое триггеры и желательно совместно с джанго) и еще про индексы то же бы хорошо посмотреть.
Спасибо.
Slow
google: SQL, TRIGGERS, CONSTRAINTS

Но вообще при работе с джангой крайне не рекомендуется такое делать. Потому что джанга предполагает (если можно это так назвать) что знает о базе всё.
Если сделать такой констрейнт, то придётся ловить какое-то подобие IntegrityError при попытке засунуть в таблицу ещё один True.
Если сделать триггер, то возможно странное поведение (триггер, например, который при инсерте ИСТИНЫ заменяет ранее истинное на ложное), если джанга до этого прочитала предыдущую истинную запись, что-то вставила, и затем что-то хочет продолжить делать с ранее-истинной-записью

Лучше, в общем, делайте джангиными средствами, это три строчки кода.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB