👨🏻‍💻

2. 참여하고 있는 채팅방 목록 띄우기

브랜치
채팅
생성 일시
2023/09/26 00:51
작성일
2023/09/26
작성자
최종 편집 일시
2023/10/11 04:20
자세한 코드를 보려면 버튼을 클릭하세요

채팅방리스트

채팅방 리스트에 필요한 정보는 아래와 같습니다.
채팅 상대방에 대한 정보 (상대방 닉네임, 지역) ← CustomUser 모델에서 가져올 수 있음
거래 상품에 대한 정보 (상품 이미지 ← PostProduct 모델에서 가져올 수 있음
채팅에 대한 정보 (마지막 채팅 내용, 마지막 채팅 일시) ← Message 모델에서 가져올 수 있음

urls.py

path('chat/', views.chatroom_list, name='chatroom')
Python
복사
urlpatterns에 위와 같은 경로를 추가하여, 채팅 첫 화면(’chat/’)으로 접속하면 views.chatroom_list가 실행되도록 해주었습니다.

views.py

채팅방 목록과 관련 정보를 불러오는 함수는 get_chatrooms_contextchatroom_list로 분리되어 있습니다.
우선 get_chatrooms_context 함수에서 현재 로그인한 사용자가 포함된 채팅방과 관련 정보를 불러옵니다.
이후 chatroom_list 메서드에서 get_chatrooms_context를 호출하고 chatrooms 변수에 담아 chat.html 템플릿으로 넘겨줍니다.
여기에서 두 메서드를 분리한 이유는, 이후 채팅방에서 오고간 메시지를 띄어주는 chatroom 함수에서 get_chatrooms_context의 코드가 반복되기 때문입니다.

chat.html

views.py에서 받아온 chatrooms 변수를 통해 chat_partner, messageproduct 등 필요한 데이터를 html에 넣어주었습니다.

결과물