반응형
삭제하기
링크 만들고 기능 연결하기
- (app의 urls.py) 지우기 기능 링크 이름 지정
- (post_card.html) 링크 만들기
- (post_confirm_delete.html) 삭제 화면 구성
{% extends 'base.html' %}
{% block title %}글 삭제{% endblock %}
{% block content %}
<h1>Post 삭제 화면</h1>
<form action="" method="POST">
{% csrf_token %}
<p>한번 삭제된 데이터는 복구가 불가능 합니다.</p><br/>
<p>그래도 삭제하시겠습니까? ID : {{ post.id }}</p><br/>
<a href="{% url 'index' %}">돌아가기</a>
<input type="sumbit" value="삭제하기">
</form>
<hr>
{% include 'mixin/posts/post_card.html' with detail=True %}
{% endblock %}
기능구현
- app의 views.py
@login_required
def post_delete_view(request, id):
Post = get_list_or_404(post, id=id)
if request.method == 'GET':
context = {'post' : Post }
return render(request, 'posts/post_confirm_delete.html', context)
else:
Post.delete()
return redirect('index')
- Post.delete() : Hard ware 삭제
- 삭제 완료 후 초기화면(index)로 이동
Tip
raise Http404 ('Error 메시지')
- 404 페이지에 Error메시지를 집어 넣어서 발생
@login_required
def post_delete_view(request, id):
Post = get_list_or_404(post, id=id)
if request.user != post.writer:
raise Http404('잘못된 접근입니다.')
if request.method == 'GET':
context = {'post' : Post }
return render(request, 'posts/post_confirm_delete.html', context)
else:
Post.delete()
return redirect('index')
get_list_or_404
- 메시지는 없지만 일치하지 않았을 때 존재하지 않는 페이지로서 Error 발생
@login_required
def post_delete_view(request, id):
Post = get_list_or_404(post, id=id, writer=request.user)
#if request.user != post.writer:
# raise Http404('잘못된 접근입니다.')
if request.method == 'GET':
context = {'post' : Post }
return render(request, 'posts/post_confirm_delete.html', context)
else:
Post.delete()
return redirect('index')
반응형
'학습 > [The-Origin][SW][Backend] Main Pag' 카테고리의 다른 글
[The Origin][백엔드] 6주차 (0) | 2022.05.16 |
---|---|
[The Origin][2차][Mission][성찰] FAQ 만들기 (0) | 2022.04.23 |
[The Origin][VSCODE][Django][CRUD] Update (0) | 2022.04.22 |
[The Origin][VSCODE][Django][CRUD] Read (2) (0) | 2022.04.22 |
[The Origin][VSCODE][Django][CRUD] Read (0) | 2022.04.22 |