演習課題「記事の削除機能を作る」
右の環境には、「myblog」プロジェクトに「news」というアプリケーションが作成してあります。また、プロジェクトとnewsアプリのルーティングは、以下のアクセスが可能になるよう設定してあります。
news/
news/(id)
news/create
news/(id)/update
news/(id)/delete
views.pyを修正して、クラスベースの汎用ビューで削除機能を作成してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#10:削除ページを作ろう
ここでは、お店情報を削除する機能を作ります。 ルートで「delete」(デリート)にアクセスした時、削除するか確認するページを表示してから、該当のお店情報を削除します。
myapp/lunchmap/urls.pyurlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
path('create/', views.CreateView.as_view(), name='create'),
path('<int:pk>/update/', views.UpdateView.as_view(), name='update'),
path('<int:pk>/delete/', views.DeleteView.as_view(), name='delete'),
]
myapp/lunchmap/views.pyfrom django.urls import reverse_lazy
from django.views import generic
from .models import Category, Shop
class IndexView(generic.ListView):
model = Shop
class DetailView(generic.DetailView):
model = Shop
class CreateView(generic.edit.CreateView):
model = Shop
fields = '__all__'
class UpdateView(generic.edit.UpdateView):
model = Shop
fields = '__all__'
class DeleteView(generic.edit.DeleteView):
model = Shop
success_url = reverse_lazy('lunchmap:index')
myapp/lunchmap/templates/lunchmap/shop_confirm_delete.html{% extends './base.html' %}
{% block content %}
<h1>お店情報の削除</h1>
<p>'{{ object.name }}'を削除しますか?</p>
<form action='' method='post'>{% csrf_token %}
<button type='submit' class='submit delete'>削除する</button>
</form>
<div>
<p><a href='JavaScript:history.back()'>< 戻る</a></p>
</div>
{% endblock %}
myapp/lunchmap/templates/lunchmap/shop_detail.html<div>
<a href='{% url "lunchmap:index" %}'>一覧</a> |
<a href='{% url "lunchmap:update" shop.pk %}'>編集</a> |
<a href='{% url "lunchmap:delete" shop.pk %}'>削除</a>
</div>
- Django
https://www.djangoproject.com/
- Django ドキュメント | Django documentation | Django
https://docs.djangoproject.com/ja/2.0/
- Home | djangoproject.jp
http://djangoproject.jp/
- Djangoウェブフレームワーク (Python) - ウェブ開発を学ぶ | MDN
https://developer.mozilla.org/ja/docs/Learn/Server-side/Django
- ★ Djangoでの開発 ダイジェスト - Qiita
https://qiita.com/zaburo/items/0e15f6c150caa13ca34c
- Django入門: 初心者でも10分でWebサービスを作れる!PythonフレームワークDjangoとPaizaCloudの使い方 - paiza開発日誌
https://paiza.hatenablog.com/entry/2018/02/28/paizacloud_django