def test_list_comments(api_client, db, comment_factory): assert api_client.get('/comments/').json() == [] first_comment = comment_factory() response = api_client.get('/comments/') comments = response.json() assert comments == [serializers.CommentSerializer(first_comment).data]
def create(self, request, *args, **kwargs): review = get_object_or_404(models.Review, id=self.kwargs.get("review_id")) serializer = serializers.CommentSerializer(data=request.data) if serializer.is_valid(): serializer.save(author=request.user, review=review) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request): comments = cache.CommentCache().get() page = self.paginate_queryset(comments) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = serializers.CommentSerializer(comments, many=True) return Response(serializer.data)
def list(self, request, *args, **kwargs): """ Returns a list of comments of the same subject as the subject of the user :return: response with new queryset """ if request.user.is_authenticated(): queryset = \ Comment.objects.filter(subject=request.user.subject.first()) else: queryset = Comment.objects.all() serializer = \ serializers.CommentSerializer(queryset, many=True, context={'request': request}) return Response(serializer.data)
def post(self, request): serializer = serializers.CommentSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)