대화방(DM ROOM)리스트를 get 할 때 내가 속해있는 (host거나 member인) 대화방만 불러오기
처음엔 아래처럼 작성했었는데, 이렇게 하자 request.user.dmrooms.all()가 host혹은 member인 dmrooms를 알아듣지 못해 불러오지 못하는 상황 발생
def get(self, request):
user_dmrooms = request.user.dmrooms.all()
serializer = DmRoomGetSerializer(
user_dmrooms,
many=True,
)
return Response(serializer.data)"""
def get(self, request):
hosted_dmrooms = request.user.hosted_dmrooms.all()
joined_dmrooms = request.user.joined_dmrooms.all()
user_dmrooms = (hosted_dmrooms | joined_dmrooms).distinct().order_by("-pk")
# user_dmrooms = request.user.dmrooms.all()
serializer = DmRoomGetSerializer(
user_dmrooms,
many=True,
)
return Response(serializer.data)
.distinct()는 중복된 대화방을 불러오는 것을 방지하기 위해 작성. (없었을 때 멤버 수만큼 대화방 리스트를 불러오는 오류 발생)
.order_by("-pk") 는 최근 생성 대화방부터 불러오기 위해 pk 내림차순으로 정렬하기 위함.