Django 게시글 좋아요 기능 구현

찬민·2024년 8월 27일

TIL

목록 보기
43/62

좋아요 기능 구현

먼저, views.py 파일에서 사용자가 좋아요 버튼을 클릭할 때 실행되는 로직을 추가한다.

@require_POST
def like(request, pk):
    if request.user.is_authenticated:
        product = get_object_or_404(Product, pk=pk)
        if product.like_users.filter(pk=request.user.pk).exists():
            product.like_users.remove(request.user)
        else:
            product.like_users.add(request.user)
            product.save()
        return redirect('products:details', pk=pk)
    return redirect('accounts:login')

이 코드에서는 사용자가 이미 좋아요를 누른 게시글에 대해 다시 클릭하면 좋아요가 취소되고, 그렇지 않으면 새로운 좋아요로 추가된다.

좋아요 버튼 디자인

다음으로, 좋아요 버튼을 사용자에게 더 잘 보이도록 디자인한다.

<form action="{% url 'products:like' product.pk %}" method='POST'>
    {% csrf_token %}
    {% if request.user in product.like_users.all %}
    <button class="btn btn-link text-danger" style="font-size: 24px;">
        <i class="fa-solid fa-heart"></i>
    </button>
    {% else %}
    <button class="btn btn-link text-dark" style="font-size: 24px;">
        <i class="fa-regular fa-heart"></i>
    </button>
    {% endif %}
</form>

이 코드에서는 좋아요를 한 경우 빨간색으로, 그렇지 않은 경우 검정색으로 하트를 표시하며, 버튼의 크기를 조정하여 사용자가 쉽게 인식할 수 있도록 했다.

이렇게 구현된 좋아요 기능과 디자인을 통해 사용자들은 직관적으로 자신이 관심 있는 게시글에 좋아요를 표시할 수 있고, 좋아요 버튼의 색상과 크기로 좋아요 여부를 쉽게 확인할 수 있다.

0개의 댓글