67 Создание формы Django Form

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

Category: N/A

Building WordCloud ...

Summary

No summary available.

Transcript

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 обновляем страничку и вот видим что у нас изменилось это поле Ну вот на сегодня мы с вами завершим Давайте наше занятие и увидимся в следующем Всем пока