Это зависит от конкретного свойства поля. В случае max_length
он используется в несколько этапов проверки в дополнение к самой базе данных.
HTML-виджет по умолчанию будет вставлять атрибут maxlength
в элемент формы <input>
. А на стороне сервера Form.clean()
также проверит длину любых полей символов.
Наконец, база данных выдаст ошибку (если вы создали и применили новую миграцию после изменения поля). Но конкретное поведение здесь зависит от базы данных.
Проверка на стороне клиента - это просто удобство использования. Все данные, поступающие от клиента, также должны быть проверены на сервере, так как проверка на стороне клиента может быть обойдена злоумышленником или отключена или недоступна на некоторых клиентах.
Проверка Django - это то, что вы используете большую часть времени. В него встроена обработка ошибок и ответы http, если вы используете фреймворк / приложение, такое как django формы, django admin или django rest framework.
Проверка базы данных является резервной, когда вы вставляете некоторые недействительные данные, даже если это "не должно быть возможным" Ошибки здесь могут привести к неперехваченному исключению, и вся транзакция будет откатана. Это очень полезная сеть безопасности, когда в вашем приложении django есть ошибки.