Найти - Пользователи
Полная версия: Как сделать уникальные записи в БД в пределах пользователя?
Начало » Django » Как сделать уникальные записи в БД в пределах пользователя?
1 2
buddha
Если я вставляю параметр unique в поле модели link = models.CharField(_('Link'), unique=True, max_length=150), то форма не проходит валидацию, если такой link уже есть в БД.

В случае с unique_together = ('owner', ‘link’) форма проходит валидацию, даже если такое значение уже есть, а ломается код в момент сохранения экземпляра объекта.

Форма создано от модели через ModelForm.
Про что говорит ошибка я уж наверно таки понял…
Видимо под этот случай стандартного поведения валидации нету.
inoks
buddha
Можно ссылку на документацию, где про это написано(про свою валидацию)? Мне проще будет сориентироваться.
https://docs.djangoproject.com/en/dev/ref/forms/validation/
Lexander
buddha
Видимо под этот случай стандартного поведения валидации нету.
Не хотите подумать почему?

Если вы будете писать свою валидацию, то она будет делать точно то же, что и СУБД при проверке уникальности.
Как вы думаете, чья система сделает такую проверку эффективнее и почему?
buddha
Lexander
Не хотите подумать почему?
Думал… Если бы дошло, то не писал бы.
К чему вопрос, потролить?
Lexander
Здесь не Вконтактике, чтобы троллингом заниматься.
Да и тратить собственное время на троллинг - себя не уважать.

По делу и серьезно.
У вас есть приличный пробел в знаниях, касающийся работы баз данных.
Как вы сами могли убедиться на вашей текущей задаче, возможности Джанго для облегчения работы с БД ограничены и не всегда позволяют абстрагироваться от БД.
Я рекомендую вам пройти хотя бы онлайн курс по БД.
На вашем месте я бы уделил особое внимание на принцип построения вспомогательных механизмов СУБД: разных типов индексов для разных типов данных, внешних ключей и ограничений.
Как устроены, как и где хранятся, в каких операциях и как используются СУБД при множественном доступе к БД.
buddha
Буду пилить) Не всё сразу… а хочется.
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