장고

개발 일지 31 - 댓글 프로필 이미지 추가..3

sorecord 2024. 9. 14. 08:33

생각하지 못한 문제가 발생했다. 

 

'가'회원과 '나' 회원이 있다고 하자.

가 회원으로 접근했을때 나 회원의 프로필 이미지가 보이지 않고 가 회원의 프로필 이미지가 보이는 문제가 발생했다.

 

어떻게 이 문제를 해결을 해줄지 고민하다가 아래 같은 방법을 사용했다.

 

try:
        user_profile = UserProfile.objects.all()
except UserProfile.DoesNotExist:
        user_profile = None

 

UserProfile의 모든 값을 받아서 post_detail로 넘겼다. 

 

그리고 반복문을 사용해서 댓글을 작성한 작성자와 반복되어 들어오는 UserProfile의 유저값이 일치할때만 이미지를 출력하는 코드를 구현했다.

 

{% for profile in user_profile %}

    {% if profile|stringformat:"s" == comment.author|stringformat:"s" %}
        <img 
            src= "http://127.0.0.1:8000/book{{ profile.profile_image }}"
            alt="Profile Picture" 
            style="cursor: pointer; width: 100px; height: 100px; border-radius: 50%;" 
        >
    {%endif%}
    
{% endfor %}

 

profile에는 각 회원의 유저값이 들어가있는 상태이다. comment.author은 댓글 작성자의 아이디다. 이 값을 비교하려고 하니까 객체의 종류가 달라서 비교되지 않았다. 

 

그래서 stringformat:'s'를 사용해서 문자열로 변환해서 비교를 해주고 해당 댓글의 작성자와 profile값이 일치할때만 이미지를 만드는 코드를 구현하니 문제없이 잘 해결되었다.