Django2 公式チュートリアルのPollsアプリの機能追加【pollsの削除】

前提

views.pyに削除機能を追加

polls/views.py
class DeleteView(generic.DeleteView):
    model = Question
    form_class = QuestionForm

    success_url = reverse_lazy('polls:index')

    def delete(self, request, *args, **kwargs):
        result = super().delete(request, *args, **kwargs)
        messages.success(
            self.request, '「{}」を削除しました'.format(self.object))
        return result

urls.pyに削除のURLを追加

polls/urls.py
    path('<int:pk>/delete/',views.DeleteView.as_view(), name='delete'),

question_confirm_delete.htmlを追加

templates/polls/question_confirm_delete.html
<p>{{ object }} を削除していいですか?</p>
<form method="post">
  <button>削除する</button>
  {% csrf_token %}
</form>

detail.htmlに削除ボタンを追加

templates/polls/detail.html
<a href="{% url 'polls:delete' question.id %}">削除</a>

これで動くと思います。
動かない場合は、当記事冒頭の前提条件を確認してください。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.