Django Tutorial - Form Classes
Updated at 2018-11-23 16:29
Create polls/forms.py
:
from django import forms
class ContactForm(forms.Form):
name = forms.CharField()
message = forms.CharField(widget=forms.Textarea)
def send_email(self):
print(self.cleaned_data)
Create polls/templates/polls/contact.html
:
<form action="{% url 'polls:contact' %}" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Send" />
</form>
Edit poll/view.py
:
# ...
from polls.forms import ContactForm
from django.views.generic import FormView
# ...
class ContactView(generic.FormView):
template_name = 'polls/contact.html'
form_class = ContactForm
def form_valid(self, form):
form.send_email()
return HttpResponseRedirect(self.request.path)
Edit polls/urls.py
:
urlpatterns = [
# ...
path('contact/', views.ContactView.as_view(), name='contact'),
# ...
]