DB
DB에 대하여(10)_댓글 DELETE (feat. Django)
데이터분석가 이채은
2024. 4. 27. 09:00
1. 댓글 DELETE
댓글 삭제 요청 사용자와 댓글 작성 사용자를 비교하여 본인의 댓글만 삭제 할 수 있도록 합니다.
# articles/views.py
def commets_delete(request, article_pk, comment_pk):
comment = Comment.objects.get(pk=comment_pk)
if request.user == comment.user:
comment.delete()
return redirect('articles:detail', article_pk)
해당 댓글의 작성자가 아니라면, 댓글 삭제 버튼을 출력하지 않도록 합니다.
<!-- articles/detail.html -->
<ul>
{% for comment in comments %}
<li>
{{ comment.user }} - {{ comment.content }}
{% if request.user == comment.user }
<form action="{% url 'articles:comments_delete' article.pk comment.pk %}" method="POST">
{% csrf_token %}
<input type="submit" value="DELETE">
</form>
{% endif %}
</li>
{% endfor %}
<ul>
참고
인증된 사용자만 댓글 작성 및 삭제
# article/views.py
@login_required
def comments_create(request, pk):
pass
@login_required
def comments_delete(request, article_pk, comment_pk):
pass