프로젝트 마무리 단계에 있어서 스타일이나 자잘한 수정을 보고 있다. 디자인에 감각이 없기도하고 JS를 검색을 통해서 바로바로 적용을 하면서 하다보니 코드가 정갈하지 않은 점과 백엔드에 집중하지 못하는 점이 아쉽지만, 출시할 생각에 모든 재미있다.
Q객체 장고 orm 쿼리문처럼 쓰고 싶을 때 사용할 수 있다.
and의 경우에는 &가 있다.
&=는 where의 and조건이고
|=는 wherer의 or조건이다.
q = Q(status = True) | Q(status = None)
recommend_goods = self.get_queryset().filter(q).annotate(participants_count = Count('auctionparticipant')).order_by('-participants_count')[:10]
serializer = GoodsListSerializer(recommend_goods, many = True, context = self.get_serializer_context())
회고
프로젝트 중간 발표가 끝나고 이제 배포와 피드백을 받고 프로젝트를 보완하고 발전하려는 작업을 남기고 있었고 더 나은 협업을 위해서 깃허브의 프로젝트를 활용하자고 하였다. 서로의 이슈에 대해서 논의할 수 있고 얼마나 진행됐는지와 어떤 방식으로하면 좋을 지에 대해서 논의 할 수 있는 것이 마음에 들어서 제안을 하였고 다행스럽게도 좋게 봐주셨다.
annotate를 활용한다면 기존에 있던 컬럼에 내가 원하는 컬럼을 추가하여 볼 수 있다.
나는 두개의 테이블에서 다른 하나를 참조하는 개수에 대해서 알아내기 위해서 사용하였고 좀 더 자게한 것은 추후에 포스팅할 계획이다.
q = Q(status = True) | Q(status = None)
recommend_goods = self.get_queryset().filter(q).annotate(participants_count = Count('auctionparticipant')).order_by('-participants_count')[:10]
serializer = GoodsListSerializer(recommend_goods, many = True, context = self.get_serializer_context())
return Response(data = serializer.data, status=status.HTTP_200_OK)
이것을 사용함으로써 원래 Goods query_set에는 참여자 수라는 컬럼이 없었지만 annotate를 사용하여 참여자 수를 가져올 수 있었다.
나는 코딩을 처음 했을 때 너무너무 못 한것을 알기에 지금 처음 하시는 분들에 대해서 존경하는 부분들이 꽤 많다. 그래서 존중하고 더 알려드리려고 하는 부분들이 있다. 하지만 시간이 갈 수록 내가 배려하는 부분에 대해서 당연하게 생각하시고 더 바라시게 되는 것 같다. 이것 또한 내가 잘 못한 것이라고 생각한다. 이를 바로 잡아야하고 이런 일이 다시 생기게 되면 안될 것 같다는 생각을 한다. 배우는 인생.. 재밌다. 이래서 협업을 해봐야 하는 것 같다.