【初心者のDjango Web開発】確認ダイアログを表示する
Javascriptのconfirm("are you sure?")で確認ダイアログを作成する事が多いですが、Djangoの開発でも同じことがJavascriptを使わずとも、Python標準のtkinterを使えば簡単に確認ダイアログを出すことができます。
目次
アプリのフォルダ構成
今回は確認ダイアログを出す方法を紹介するだけですが、どのような使われ方をしているのか理解しやすいように、アプリの簡単な構成について説明します。
アプリのフォルダ構成

- djangoのプロジェクト名は「fumProj」です。django-admin startproject fumProj
- その下にdjangoアプリ「myblog」を作成。python manage.py startapp myblog
- 「myblog」の中にtemplatesフォルダを作成。
- 「myblog」の中に"forms.py"や"models.py"、"urls.py"、"views.py"があります。
views.pyの実装
いつもの通り、urls.pyでパスの指定をしてから、views.pyでその処理を実装します。views.pyにはtkinterをimportします。
fumProj/myblog/views.py
from django.shortcuts import   render,  redirect
from django.views import   View
import  tkinter as tk
import  tkinter.messagebox as msgbox
# 削除処理
class PostDeleteView(View):
    def get(self, request, id):
        post = Post.objects.get(id=id)
       # --確認ダイアログはここから↓--
        tk.Tk().withdraw()
        ans=msgbox.askokcancel('確認',f'「{post.title}」を削除しますか')
        # --ここまで↑--
        if ans:
            post.delete()
        return redirect('post_index')
post_delete = PostDeleteView.as_view()実行画面
投稿リストから右側の[削除]ボタンをクリックすると、削除する前に確認ダイアログが出て、「OK」か「Cancel」を選ぶことができるようになります。
実行画面

以上です。


