데이터 분석 기술 블로그

DB에 대하여(17)_좋아요 기능 구현 (feat. Django) 본문

DB

DB에 대하여(17)_좋아요 기능 구현 (feat. Django)

데이터분석가 이채은 2024. 5. 4. 09:00

좋아요 기능 구현

url 작성합니다.

# articles/urls.py

urlpatterns = [
    ...
    path('<int:article_pk>/likes/', views.likes, name='likes'),
]

view 함수를 작성합니다.

# articles/views.py

@login_required
def likes(request, article_pk):
    article = Article.objects.get(pk=article_pk)
    if request.user in article.like_users.all():
        article.like_users.remove(request.user)
    else:
        article.like_users.add(request.user)
    return redirect('articles:index')

index 템플릿에서 각 게시글에 좋아요 버튼을 출력합니다.

<!-- articles/index.html -->

{% for article in articles %}
  ...
  <form actions="{% url 'articles:likes' article.pk %}" method="POST">
    {% csrf_token %}
    {% if request.user in article.like_users.all %}
      <input type="submit" value="좋아요 취소">
    {% else %}
      <input type="submit" value="좋아요">
    {% endif %}
  </form>
  <hr>
{% endfor %}

좋아요 버튼 출력을 확인합니다.


좋아요 버튼 클릭 후 테이블을 확인합니다.