자세한 코드를 보려면
버튼을 클릭하세요
채팅방리스트
•
채팅방 리스트에 필요한 정보는 아래와 같습니다.
◦
채팅 상대방에 대한 정보 (상대방 닉네임, 지역) ← CustomUser 모델에서 가져올 수 있음
◦
거래 상품에 대한 정보 (상품 이미지 ← PostProduct 모델에서 가져올 수 있음
◦
채팅에 대한 정보 (마지막 채팅 내용, 마지막 채팅 일시) ← Message 모델에서 가져올 수 있음
urls.py
path('chat/', views.chatroom_list, name='chatroom')
Python
복사
•
urlpatterns에 위와 같은 경로를 추가하여, 채팅 첫 화면(’chat/’)으로 접속하면 views.chatroom_list가 실행되도록 해주었습니다.
views.py
•
채팅방 목록과 관련 정보를 불러오는 함수는 get_chatrooms_context와 chatroom_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에 넣어주었습니다.