🚀 Add to Chrome – It’s Free - YouTube Summarizer
Category: N/A
No summary available.
00:00
Итак в этом уроке Наша задача переписать нашу форму с чистого мля вот помните как мы это делали на форму которая определяется в самой Джанг для этого мы создаём отдельный питонов документ внутри нашего приложения обязательно этот Файлик называется forms здесь мы
00:18
первым делом импортируем из Джанги модуль forms и дальше создаём класс даём ему название Я назову Feedback form и он обязательно наследуется от forms for Вот
00:34
это наследование позволит нам внутри нашего класса который мы сейчас создаём описать поля нашей будущей формы и описываются они смотрите Каким образом мы даём название нашего поля от названия так раз зависит Под каким именем это поле летит на наш сервер Давайте
00:49
вспоминать помните вот мы имена здесь прописывали как name soname и фидбек поэтому Давайте оставим такие же названия и у каждого поля должен быть тип от типа зависит как это поле будет выглядеть и Какие данные в него можно
01:05
вводить соответственно имя Мы хотим вводить в виде текста Вот поэтому я выбираю charfield фамилия у нас будет тоже филм Ну и по сути отзыв У нас тоже является филм поэтому давайте пока оставлю вот в таком виде нашу форму и в
01:22
принципе всё вот мы сделали е описание очень похоже на то как мы с вами определяли модели и теперь мы импортируем название нашего формы из модуля forms который мы сейчас
01:37
только что создали и смотрите что мы делаем в самом начале мы создаём переменную form ну можете любой другое название придумать и это будет экземпляр класса edb форм в этом экземпляре будут как раз уже
01:53
содержаться описание наших трх полей и мы теперь вместо eror Давайте передавать фр потому что eror нам теперь уже не понадобится это логическая переменная вот нам нужно вывести содержимое вот этой формы и вот здесь тоже Давайте
02:09
вводить форму и всё что нам осталось это пойти ВК мы убираем с вами весь HTML кроме кнопки отправить Вот я просто его очищаю и Обращаемся к нашей переменной форм Обращаемся конечно же мы в шаблоне
02:27
поэтому заключаем это в Круглое скоп вот и всё Давайте обновлять страничку и вот смотрите наша форма готова мы Для этого только сделали описание самой формы вот четыре строчки и плюс импорт и
02:42
на выходе сразу получили вот эти описания полей и смотрите если нажму отправить с пустыми полями мы автоматически получим вот такое поведение оно достигается за счёт того что дн
02:58
отрисовать атрибуты required То есть он обозначает обязательное это поле должно быть заполнено Об этом атрибуте я упоминал на предыдущем уроке вот таким образом в htm можно сделать обязательное поле но его минус в том что я могу спокойно его из HTML убрать вот так
03:16
отредактировал форму нажимаю отправить и всё у меня уже это поле не проходит эту проверку и то же самое Я могу сделать и с другими полями видите я required просто убираю нажимаю отправить и форма у нас
03:31
отправляется видите поля обновились Но на самом деле запрос уже ушёл на наш сервер Теперь давайте посмотрим как эти данные принимаются на сервере для этого Давайте вот в этом условии То есть когда мы получаем пост запрос я уберу вот этот код он нам не
03:47
понадобится сейчас и смотрите что мы делаем мы создаём форму вот по такому образу и подобию только внутри неё мы помещаем значение которые пришли в пост
04:03
запросе Вот давайте вот эту форму Я чуть-чуть ниже Перенесу но в двенадцатой строчке эта форма будет пустая А в десятой строчке эта форма будет заполнена причём значениями которые пришли из подзапроса и вот эту форму Мы можем с вами проверить на валидность это
04:20
делается путём вызова метода у этой формы который называется из он просто возвращает да или нет И в случае если да то форма валидно то есть туда пришли правильные значения и смотрите как мы эти значения можем с вами достать Мы у формы вызываем такой
04:37
атрибут как Clean Data то есть очищенные данные вот мы можем на них сразу с вами взглянуть и вот если вот это проверка на валидность прошла то мы будем выполнять редирект На вот эту страничку да А в противном случае мы создаём новую форму
04:53
то есть вот это переменно мы переписываем и пустые форму мы вновь будем отображать Давайте вот здесь поставим точку останова обновим страничку и Давайте отправлять значение вот смотрите Мы оказались в этой строчке Мы можем с вами посмотреть
05:10
на результат вот этого метода из valid в калькуляторе Вот видите он возвращает TR Значит мы попадаем на следующую строчку можем посмотреть значение Clean Data и это будет тот самый словарь
05:26
состоящий из полей нашей формы и их значений вот мы выведем его на экран и дальше у нас выполнится Директ Вот мы с вами это увидим у нас с вами на самом деле сейчас вообще проверок формы нет кроме вот этого обязательного заполнения И то это делается на меле вот как
05:43
добавлять проверки мы с вами разберём на следующем занятии Ну а сейчас давайте напоследок поговорим вот об этом поле фидбек потому что оно должно отображаться в немного другом виде и чтобы изменить отображение мы должны в нашей форме изменить виджет
06:00
то есть здесь есть специальный атрибут у вот этого класса charfield он на самом деле смотрите в фиде не отмечается здесь Но если вы пройдёте в его родителя то есть в Лас Field вы увидите вот этот атрибут по умолчание он
06:16
равен к inp как раз вводу текста но мы можем ему задать другое значение делается это таким образом и указываем название виджет наш называется Text areia вот и всё обновляем страничку и
06:35
вот получаем другое отображение фидбека у этого виджета есть количество рядов и колонок их тоже можно поменять для этого здесь мы заполняем такой атрибут как ats словарём куда должны передать определённые ключи вот один из них - это
06:50
rows Например Мы хотим сказать у нас будет два ряда и второй ключ - это calls то есть соответственно колонки Давайте их будет 40 Если вы пройдёте в текст эрия вы так раз и увидите вот эти значения То есть в принципе можно было их отсюда и скопировать вот по умолчание
07:07
так было 40 колонок поэтому Давайте здесь сделаем чуть-чуть поменьше 20 обновляем страничку и вот видим что у нас изменилось это поле Ну вот на сегодня мы с вами завершим Давайте наше занятие и увидимся в следующем Всем пока