Создание класса Form в Django
Ручной разбор request.POST
быстро становится неудобным:
нужно самому проверять данные
и собирать HTML полей. В Django
для этого есть класс Form.
Формы обычно кладут в файл
forms.py приложения.
Давайте создадим форму поста:
from django import forms
class PostForm(forms.Form):
title = forms.CharField(max_length=200)
text = forms.CharField(widget=forms.Textarea)
Каждый атрибут класса - это поле формы. Тип поля задает, какие данные ожидаются и как поле выглядит.
В представлении создадим объект формы и передадим его в шаблон:
from django.shortcuts import render
from main.forms import PostForm
def show_form(request):
form = PostForm()
return render(request, 'form.html', {
'form': form,
})
Создайте файл forms.py
и форму SearchForm
с полем query.
Создайте форму FeedbackForm
с полями name, email
и message.
Передайте пустую форму в шаблон из представления.