Пытаюсь написать регистрацию на сайте на основе встроенной UserCreationForm. Хочу сделать такую очевидную вещь, как вывод сообщения юзеру о том, что пароли не совпадают. И не понимаю как это сделать. Там в форме в этом случае вызывается ValidationError, и что мне с ним делать, я не понимаю.
Смотрела в гугле, в документации, но ничего найти не могу. Наверное, не там смотрю. Даже досадно, вроде ерунда какая-то.
Я только начинаю изучать django если что :)
Есть стандартная батарейка, дефолтно она уже подключена
django.contrib.message
Можно собирать ошибки во вюшке в message.error
а в шаблоне выводить как message.error
error - тег для message
Принципиальна в том плане, что я только изучаю django, и раз он предлагает такие возможности, то я хочу знать, как ими пользоваться.
Но спасибо за ссылку, этот метод я тоже возьму на вооружение :)
Валидация на сервере необходима, потому что нельзя доверять валидации клиента. JavaScript — это хорошо, но как приятное дополнение, а не как основная и единственная валидация.
Безусловно, нельзя доверять клиентской валидации, потому что "усы и подделать можно"(с), особенно если это данные для сохранения или что-то на основе чего будет строиться дальнейшая логика представления. Но первичную проверку на типы, форматы, тем более на идентичность значений полей, как мне кажется, можно провести и на клиенте. Ведь, в данном конкретном случае, пароль будет создаваться из значения одного поля (либо пароля, либо его подтверждения). Впрочем, если так хочется, можно и на сервер эти данные сгонять (formvalidator.net/#security-validators_backend).
Я так цепляюсь за валидацию первичных данный на фронтенде, потому что мой личный мучительный опыт перезаполнения больших форм по нескольку раз из-за только серверной валидации (и собственных корявых рук) призывает меня максимально избавлять от этого пользователей моих ресурсов.