{% 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이름으로 바뀌게 조건문을 구현했다.
그리고 내가 예상했던 대로 코드가 잘 실행이 되었다.
'장고' 카테고리의 다른 글
개발일지 45 - 작성 글 확인 + 버그 수정(프로필 이미지) (0) | 2024.09.28 |
---|---|
개발일지 42 - 좋아요 버튼 이미지로 바꾸기..4 (0) | 2024.09.25 |
개발일지 39 - 좋아요 버튼 이미지로 바꾸기 (0) | 2024.09.22 |
개발 일지 37 - 게시글 이미지 추가..3 (0) | 2024.09.20 |
개발 일지 36 - 게시글에 이미지 추가하기..2 (2) | 2024.09.19 |