데이터 분석 기술 블로그

DB에 대하여(10)_댓글 DELETE (feat. Django) 본문

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