UpdateView
データを更新するときに適したテンプレート
templateの作成
template/update.html
{% extends 'base.html' %}
{% block content %}
<form action="" method="POST">{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="更新します">
</form>
{% endblock content %}
urls.pyの編集
todo/urls.py
from django.urls import path
from .views import TodoList, TodoDetail, TodoCreate, TodoDelete, TodoUpdate
urlpatterns = [
path('list/', TodoList.as_view(), name='list'),
path('detail/<int:pk>', TodoDetail.as_view(), name='detail'),
path('create/', TodoCreate.as_view(), name='create'),
path('delete/<int:pk>', TodoDelete.as_view(), name='delete'),
path('update/<int:pk>', TodoUpdate.as_view(), name='update'),
]
view.pyの編集
views.py
from django.views.generic import ListView, DetailView, CreateView, DeleteView, UpdateView
class TodoUpdate(UpdateView):
template_name = 'update.html'
model = TodoModel
fields = ('title', 'memo', 'priority', 'duedate')
success_url = reverse_lazy('list')