def put(self, request, *args, **kwargs): comment = self.get_object(movie_id=kwargs.get('movie_id'), pk=kwargs.get('pk')) serializer = CommentSerializer(comment, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): movie = Movie.objects.get(id=kwargs.get('movie_id')) author = MyUser.objects.get(pk=request.user.pk) serializer = CommentSerializer(data=request.data) if serializer.is_valid(): serializer.validated_data['movie'] = movie serializer.validated_data['author'] = author serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, *args, **kwargs): box_office = BoxOfficeMovie.objects.all().order_by('-created')[:10] # 박스오피스 안에 있는 댓을 리스트업 comments = [] for i in box_office: comment = Comment.objects.filter(movie__pk=i.movie.pk) for k in comment: comments.append(k) # print('첫번째', comments) # 5개 뽑아서 1개 랜덤 출력 comments = sorted(comments, key=attrgetter('likes_count'), reverse=True) comments = comments[:5] # print('두번째', comments) if len(comments) == 0: raise NotAcceptable('코멘트가 없습니다') else: best_comment = random.sample(comments, 1) serializer = CommentSerializer(best_comment, many=True) return Response(serializer.data)
def get(self, request, *args, **kwargs): comment = Comment.objects.exclude(content__isnull=True).exclude( content__exact='').order_by('-created')[:6] serializer = CommentSerializer(comment, many=True) return Response(serializer.data)
def get(self, request, *args, **kwargs): comments = Comment.objects.filter(movie=self.kwargs['pk']) top_comment = comments.annotate( num_likes=Count('like_users')).order_by('-num_likes')[:3] serializer = CommentSerializer(top_comment, many=True) return Response(serializer.data)
def get(self, request, *args, **kwargs): comment = self.get_object(movie_id=kwargs.get('movie_id'), pk=kwargs.get('pk')) serializer = CommentSerializer(comment) return Response(serializer.data)
def get(self, request, *args, **kwargs): comments = Comment.objects.filter(movie_id=kwargs.get('movie_id')) serializer = CommentSerializer(comments, many=True) return Response(serializer.data)