フォームの送信方法 Part 3 - Django

ビュー関数をクラス化する

ビュー関数をクラス化するには、「 TemplateView 」というクラスを継承したクラスとして定義します。

「 hello 」ディレクトリ内の 「 views.py 」を次のように変更します。

pythonApp/env/djnago_app/hello/views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import TemplateView
from .forms import HelloForm

# Create your views here.
class HelloView(TemplateView):
  def __init__(self):
    self.params = {
      'message:': 'your data:',
      'form': HelloForm()
    }
  
  def get(self, request):
    return render(request, 'hello/index.html', self.params)

  def post(self, request):
    self.params['message'] = 'name:' + request.POST['name'] + '<br>mail:' + request.POST['mail'] + '<br>age:' + request.POST['age']
    self.params['form'] = HelloForm(request.POST)
    return render(request, 'hello/index.html', self.params)

urlpatterns も変更します。

pythonApp/env/djnago_app/hello/urls.py

from django.urls import path
from .views import HelloView

urlpatterns = [
  path('', HelloView.as_view(), name='index'),
]