クラスで試したがなぜかうまくいかない。 クラスのDeleteViewで削除する例は多いが、関数を利用したものが少ない。
関数だと、こんなふうにしたところ、うまくいった。
@login_required
def mcsmain_delete(request,pk):
template_name = "mcsmain/mcsmain_delete.html"
mcsmain = get_object_or_404(Mcsmain, pk=pk)
if mcsmain.created_by_id != request.user.id:
return HttpResponseForbidden("このメッセージの削除は許可されていません。")
if request.POST:
mcsmain.delete()
return redirect('/')
return render(request,template_name) ←ここで、pkを渡さなくても、postには支障ないようだ。このへんがわかりずらい。
def mcsmain_delete(request,pk):
template_name = "mcsmain/mcsmain_delete.html"
mcsmain = get_object_or_404(Mcsmain, pk=pk)
if mcsmain.created_by_id != request.user.id:
return HttpResponseForbidden("このメッセージの削除は許可されていません。")
if request.POST:
mcsmain.delete()
return redirect('/')
return render(request,template_name) ←ここで、pkを渡さなくても、postには支障ないようだ。このへんがわかりずらい。
***mscmain_detail.html
<a href="{% url 'mcsmain_delete' mcsmain.id %}">削除</a>
***mscmain_delete.html
<form method="post" >
{% csrf_token %}
<p>削除していいですか?</p>
<input type="submit" value="削除する">
</form>
0 件のコメント:
コメントを投稿