장고

개발일지 41 - 좋아요 버튼 이미지로 바꾸기..3

sorecord 2024. 9. 24. 20:07
{% if comment_user in like_user %}liked{% endif %}

 

위의 코드를 설명하기 위해서는 전체적인 조건문을 간단히 설명해야 한다.

 

 {% if comment_user in user_check %} 
    <div>
       
        <form method="post" action="{% url 'post_like' post.pk %}" style="display:inline;"id="like-form">
            {% csrf_token %}
            <button type="submit" class = "like-btn {% if comment_user in like_user %}liked{% endif %}" id ="like-btn">좋아요</button><p>좋아요 수: {{ like_count }}</p>
        </form>
....
..

 

위와 같은 구조를 가지고 있다. user_check는 모든 회원의 정보가 들어있는 리스트이다. 그 안에 comment_user의 값이 있을 경우 좋아요 버튼을 클릭하고 댓글을 작성할 수 있게 만들어 두었다.

 

이 부분을 이용하면 좋아요 버튼도 문제없이 구현할 수 있을 것 같았다. 그러기 위해서는 좋아요를 누른 사람의 정보 값이 필요했다. 

 

그래서 view.py함수에서 

like_users = post.like_users.all()
like_user_names = [user.username for user in like_users]

 

like_user_names를 context값에 담아서 post_detail.html로 보내주었다. 

 

보낸 값의 이름이 like_user이다. 이 안에 comment_user가 있다면 liked라는 class이름으로 바뀌게 조건문을 구현했다.

 

그리고 내가 예상했던 대로 코드가 잘 실행이 되었다.