【初心者の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」を選ぶことができるようになります。
実行画面
以上です。