Django работа с формой

В этой части учебника мы разберём как происходит в Django работа с формами, думаю многим будет очень интересно и самое главное полезно.

Django работа с формами:

Перед тем как вы вести форму, нужно её создать, для этого сначала создайте файл «forms.py», в ней и будет вся настройка формы, вот что мы в ней пишем:

Как видите в целом тут всё похоже на создание модели, если вы не знаете как её создавать, то почитайте статью по ссылке. Единственное отличие что мы импортируем не компонент для создания модели, а компонент для создания формы, и наследую от него класс который будет отвечать на форму от компонента forms.Form.

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

Тут мы также импортируем компонент для создание формы, но дополнительно ещё импортируем нашу модель для поста, и наследуем класс формы не от forms.Form, а от forms.ModelForm, таким образом обозначая что для создания формы мы будем использовать модель.

Но внутри класса PostForm, мы ещё создаём класс Meta, внутри него у нас два свойства, model, которому присваиваем модель Post, и fields, это список свойств модели для которых нам нужны поля в форме, на этом тут в целом всё.

Теперь переходим в наше представления, или в файл «views.py», вот что мы там пишем для того, чтобы получить форму:

Здесь мы уже берём компонент для рендера страницы (Об этом поговорим в следующей части учебника), и форму для создания поста, после чего создаём представление для  страницы и берём форму, кладём её в контекст.

Примечание:

Контекст должен в себе хранить переменные для рендера в шаблоне.

Теперь переходи к шаблонам, в нашем случае шаблону «create_post.html»:

Первое что вы тут замечаете, так это то, что перед объявлением form, мы объявлением csrf_token, это выводит невидимое поле с токенам, он нужен для подтверждения формы, чтобы злоумышленник не мог отправлять данные минуя форму.

Ну и потом выводим форму, и теперь можем в ней писать всё что мы захотим. Также добавляем кнопку input для отправки формы.

Последние что осталось рассмотреть, как принимать POST запросы, для этого удушим наше преставление create_post_page, которое было выше. Вот как мы дополним его:

Во-первых мы добавили проверку, типа запроса, если POST, то создаём объект post, дольше проверяем на валидность, или правильно ли пользователь ввёл свои данные, если всё хорошо, то сохраняем новый элемент в базу данных.

Вывод:

В этой части вы узнали основное что вам нужно знать про работу с формой, думаю вам было интересно и полезно, и теперь вы поняли как происходит в Django работа с формами.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Дополнительно:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии