68 Django Валидация формы

🚀 Add to Chrome – It’s Free - YouTube Summarizer

Category: N/A

Building WordCloud ...

Summary

No summary available.

Transcript

00:00

в этом уроке мы с вами поговорим о том как можно валидировать поля нашей формы но Давайте сперва Уменьши количество полей до одного то есть уберём два последних поля и будем наши эксперименты делать на только именем а потом уже вернём все остальные и ещё немножко

00:15

изменим код помните мы здесь в случае если получали пост запрос то создавали переменный форм и заполняли её значениями это делали в десятой строчке и затем если форма валидная то переходили на вкладку done Но если форма

00:31

была не валидная то мы создавали новый экземпляр формы пустой причём и его возвращали в наше шаблон вот Давайте немножко изменим наш код вот таким вот образом я поставлю здесь блок else и сейчас поясним что произойдёт

00:46

смотрите если у нас будет лететь пост запрос мы создадим переменную форм при помощи данных из пост запроса и если форма будет не валидная то переменный форм не перет пятнадцатой строчкой то есть полетит именно заполненная но не

01:03

валидная форма вот сюда вот в шестнадцатую строчку и вот это изменение позволит нам увидеть следующую вещь Давайте обновим сперва нашу страничку смотрите когда я нажимаю отправить у нас появляется вот это запрещающее сообщение

01:19

но если мы его уберём вы уже сами знаете как это делать то есть убираем вот этот атрибут и отправляем форму с вами увидим сообщение об ошибке и если вы разверни мание здесь появится Вот такой

01:36

вот список он непорядочный и в нём так раз указываются ошибки и этот список появился так раз из-за того что наша форма не валидная и мы возвращаем именно не Валид форму как я уже сказал а не пустую и вот поэтому нам эти сообщения доступны и мы будем ими пользоваться Как

01:54

видите сообщение у нас здесь проверяется на незаполненный значений и вс это что каждое наше поле Смотрите если вы пройдёте в него и спуститесь дальше в родители Field Вот вы увидите что автоматом проставляется атрибут requ в

02:11

значении True Это говорит о том что по умолчанию каждое поле должно быть обязательно заполнено вот также вы здесь Можете видеть другие любые атрибуты которые могут передаваться внутрь вашего поля конечно же нам нужно воспользоваться м соответственно при

02:26

помо него мы можем задать другое обозначение с нашим полем Вот видите Изменилось название и мы можем задать другие валидаторы они зависит от того Типа Поля с которым вы имеете дело Вот например у филда есть

02:43

такие валидаторы как maxl и Min L Давайте их проставить То есть в принципе я могу их скопировать отсюда и дать им здесь какие-то числовые значения допустим maxl у нас Давайте будет максимум се ми L пусть будет два

02:58

обновляем страничку Итак вводим один символ и мы получаем с вами предупреждение оно возникло потому что также в нашей форме смотрите появились два атрибута Max lank и Min L они делают защиту в пределах самого htm видите я не

03:13

могу ввести здесь больше семи символов Но эти атрибуты Мы можем с вами спокойно убрать вот я их удаляю и Давайте попробуем отправить больше символов чем се нажимаю отправить и видите здесь происходит ещё дополнительная проверка на самом сервере

03:31

при этом страничка наша обновилась мы видим вновь вот эти атрибуты в самом нашем поле давайте я вновь их удалю и попробую отправить один символ для того чтобы вы увидели другой сообщения на сами сообщения Вы тоже

03:48

можете влиять для этого Давайте опять же пройдём в charfield и вновь спустимся в Field смотрите Здесь есть такой атрибут как Давайте его скопирую и ниже есть описание это представляет собой словарь

04:05

который переписывает сообщение по умолчание об ошибках Итак значит здесь передаём в этот атрибут словарик и его ключами будут по сути являться название ваших атрибутов То есть если вы передаёте maxl

04:21

то ключом Вы указываете какое сообщение хотите видеть например слишком много символов Min L слишком мало символов и у нас не

04:36

забывайте есть ещё автоматически поле required так вот если у нас будет пустое значение в нашем поле то есть не заполнено давайте сообщим Укажите хотя бы один символ отлично перезагружаем нашу

04:56

страничку Сейчас если мы нажмём отправить у нас сработает опять же наши атрибуты в HTML Поэтому нам нужно их будет обязательно убрать Итак нажимаем отправить и сейчас

05:11

увидим сообщение которое стоит в блоге required соответственно мы должны указать хотя бы один символ вот убираем required и Давайте на Min проверим один символ передаём нажимаем отправить и вот видим слишком мало

05:28

символов думаю идея дальше понятна в документации опять же вы можете посмотреть какие ещё типы полей Вы можете передать в принципе вот здесь они все перечислены либо в самом А классе charfield или в других полях с которыми вы работаете либо в базовом классе Field

05:46

вот все здесь названия и Давайте в качестве примера разберём ещё один тип Поля с которым мы ещё не работали это числовой тип соответственно у нас будет поле рейтинг и мы его создаём как integer Field Давайте зададим ему

06:03

л и сразу спустимся внутрь этого класса у него также есть Ма и соответственно они отвечают за то В каких пределах Вы можете вести число Ну давайте у нас рейтинг будет от одного до пяти Давайте обновим

06:21

страничку вот у нас появился рейтинг смотрите я могу его перемещать в пределах от о до п но опять же потому что у нас в htm проставлены вот эти атрибуты Min и Макс Давайте их

06:36

уберём require тоже уберём и попробуем ввести значение побольше Да у нас проблемы с именем его тоже нужно ввести вот получаем что значение рейтинга не должно быть больше пяти если укажем

06:52

правильное то вот наш запрос успешно будет обработан Ну вот именно таким образом вы можете заваливать кажд ваше поле соответственно Здесь атрибутами вы задаёте определённые условия и также можете влиять на сообщение которое будет видеть ваш пользователь когда ведёт

07:09

неправильное значение Итак на сегодня у меня всё и увидимся в следующем видео Всем пока