(最終更新月:2021年12月)
「クラスベースビューを使って削除ページを作りたい!」
「DeleteViewってどうやって使うの?」
というDjango初学者の方へ向けた記事となります
当記事では、
- DeleteViewを継承し、削除ページを作る方法
について解説していきます。
【著者プロフィール】

当ブログを通じて、Webアプリの書き方やアプリの公開方法までを解説しています。
☆日報アプリ「D-Repo」(デモ版)→こちら
☆便利ツールアプリ「Tool Station」→こちら
✔YouTube解説動画
当記事の内容は動画を見ながら進めると、約15分程度で完了します。
動画ならではの情報も解説しているので、記事と一緒にご覧ください。
動画の概要欄には、単元ごとのコードを紹介しているgithubページも載せています。
DeleteViewの書き方
DeleteViewの書き方のポイントは4つです
- DeleteViewのインポートと継承クラスの作成
- 「template_name」変数でHTMLテンプレートを指定
- 「model」変数へモデルクラスの代入
- 「success_url」変数で削除後のリダイレクト先を指定
具体的にコードを見てみましょう
コード例
from django.views.generic.edit import DeleteView
class NippoDeleteView(DeleteView):
template_name = "nippo/nippo-delete.html"
model = NippoModel
success_url = reverse_lazy("nippo-list")
「CreateView」や「UpdateView」と似ていて、とてもシンプルにまとまってます
urls.py
URLとビュークラスを紐付けます
urlpatterns = [
...,
...,
path("delete/<int:pk>/", NippoDeleteView.as_view(), name="nippo-delete"),
....
]

ビュークラス.as_view()を忘れずに!
おまけ:ごちゃごちゃしたインポートをまとめよう
インポートしてるビュークラスをまとめる方法をお伝えします。
なぜなら、urls.pyのビューが以下のとおり、ごちゃごちゃしているからです。
from .views import NippoListView, NippoDetailView, NippoCreateFormView, NippoUpdateFormView, NippoDeleteView
方法はこちら。
from .views import (
NippoListView,
NippoDetailView,
NippoCreateFormView,
NippoUpdateFormView,
NippoDeleteView
)
( )を使って、改行をするのです。

まとめ
モダルで作成したデリートビューはこちら。

いきなり消えてしまっても困るので、BootstrapのModalで、確認コメントと削除ボタンが表示されましたね。
DeleteViewでは、以下の変数を忘れないようにしましょう。
- template_name
- model
- success_url
さて、こちらのDjangoチュートリアルもクラスベースビューは完結です。
次回はユーザーモデルをカスタマイズし、ユーザー名でなく、Eメールアドレスでログインする方法をご紹介します。
✔当ブログは以下のような方に向けて書かれています
「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」
✔当ブログ掲載の記事
- Djangoで作る日報アプリ開発
- WebアプリをWeb上に公開する方法
- Webアプリ開発に必要なそのほかの情報

ITCブログにご協力いただける方は、以下もご検討いただけると嬉しいです。