続いて,コメントの削除機能を実装しよう.まず,views.py に CommentDeleteView を追加する.
comments/views.py (抜粋)
from django.urls import reverse_lazy
from django.views.generic import ListView
from django.views.generic import DetailView
from django.views.generic import CreateView
from django.views.generic import UpdateView
from django.views.generic import DeleteView
from .forms import CommentForm
from .models import Comment
# Create your views here.
... (中略) ...
class UpdateCommentView(UpdateView):
    model = Comment
    form_class = CommentForm
    success_url = reverse_lazy('comments:index')
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['page_title'] = 'コメントの更新'
        context['form_name'] = 'コメントの更新'
        context['button_label'] = 'コメントを更新する'
        return context
class DeleteCommentView(DeleteView):
    model = Comment
    success_url = reverse_lazy('comments:index')
次に,ルートを記述する.
comments/urls.py
from django.urls import path
from . import views
app_name = 'comments'
urlpatterns = [
    path('', views.CommentIndexView.as_view(), name='index'),
    path('<int:pk>/', views.ShowCommentView.as_view(), name='show'),
    path('create/', views.CreateCommentView.as_view(), name='create'),
    path('<int:pk>/update/', views.UpdateCommentView.as_view(), name='update'),
    path('<int:pk>/delete/', views.DeleteCommentView.as_view(), name='delete'),
]
  comment_confirm_delete.html を作成する.このとき,モデル名_confirm_delete.html が標準の名前になることに注意する.
comments/templates/comments/comment_confirm_delete.html
{% extends "base.html" %}
{% block title %}
コメント削除
{% endblock %}
{% block content %}
  <div class="container">
    <h1 class="my-5">コメントを削除しますか</h1>
    <form method="POST">
      {% csrf_token %}
      <button type="submit" class="btn btn-primary">削除する</button>
    </form>
  </div>
{% endblock content %}
最後に,詳細表示画面に削除ページへのリンクを設置する.
comments/templates/comments/comment_detail.html (抜粋)
{% block content %}
  <div class="container">
    ... (中略) ...
    <hr>
    <div>
      <p>
        <a href="{% url 'comments:update' comment.id %}">
          [ 編集 ]
        </a>
        <a href="{% url 'comments:delete' comment.id %}">
          [ 削除 ]
        </a>
      </p>
    </div>
  </div>
{% endblock content %}
実際に投稿したコメントを削除してみよう.詳細画面から[削除]をクリックするとよい.
[削除する]ボタンを押すと実際にコメントが削除される.