def review_create(request): if request.method == 'GET': review = models.Review.objects.all() serializer = serializers.ReviewSerializer(review, many=True) return Response(serializer.data) else: serializer = serializers.ReviewSerializer(data=request.data) book = models.Book.objects.get(id=request.data['book']) print(book) book.r_score += int(request.data['score']) book.r_cnt += 1 book.save() if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data)
def get(self, request, pk): review = self.get_object(pk) if review != -1: serializer = serializers.ReviewSerializer(review) review = serializer.data review["nickname"] = get_object_or_404(models.User, id=review["user"]).nickname return Response(review, status=status.HTTP_200_OK) else: result = {"result": -1} return Response(result, status=status.HTTP_204_NO_CONTENT)
def put(self, request, pk): review = self.get_object(pk) serializer = serializers.ReviewSerializer(review, data=request.data) if review != -1: if serializer.is_valid(): serializer.save() print("수정성공") result = {'result': True} return Response(result, status=status.HTTP_202_ACCEPTED) else: result = {"result": False} return Response(result, status=status.HTTP_400_BAD_REQUEST) else: Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def create(self, request, *args, **kwargs): title = get_object_or_404(models.Title, id=self.kwargs.get("title_id")) if (models.Review.objects.filter(author=request.user, title=title).all().count() != 0): return Response({}, status=status.HTTP_400_BAD_REQUEST) serializer = serializers.ReviewSerializer(data=request.data) if serializer.is_valid(): if not (1 <= serializer.validated_data["score"] <= 10): return Response({}, status=status.HTTP_400_BAD_REQUEST) serializer.save(author=request.user, title=title) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): received_data = request.data print(received_data) review_dict = { "id": None, "store": received_data.get("store"), "user": received_data.get("user"), "score": received_data.get("score"), "content": received_data.get("content"), "reg_time": datetime.datetime.now(), "taste": received_data.get("taste"), "service": received_data.get("service"), "price_satisfaction": received_data.get("price_satisfaction"), "interior": received_data.get("interior") } review_serializer = serializers.ReviewSerializer(data=review_dict) if review_serializer.is_valid(): saved_id = review_serializer.save().id files = received_data.getlist("file") print(type(files)) print(files) file_size = len(files) if file_size > 0: for file in files: review_image_dict = { "id": None, 'file': file, 'review': saved_id } review_image_serializer = serializers.ReviewImageSerializer( data=review_image_dict) if review_image_serializer.is_valid(): review_image_serializer.save() else: print(review_image_serializer.error_messages) result = {"saved_review_id": saved_id} return Response(result, status=status.HTTP_201_CREATED) result = {"saved_review_id": saved_id} return Response(result, status=status.HTTP_201_CREATED) else: print("에러나?") print(review_serializer.error_messages) return Response(review_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def review_command(request, review_pk): if request.method == 'PUT': review = get_object_or_404(models.Review, pk=review_pk) serializer = serializers.ReviewSerializer(data=request.data, instance=review) book = models.Book.objects.get(id=review.book_id) book.r_score -= review.score - int(request.data['score']) book.save() if serializer.is_valid(raise_exception=True): serializer.save() return Response({'message': 'updated competition!!!'}) else: print('delete_review') review = get_object_or_404(models.Review, pk=review_pk) book = models.Book.objects.get(id=review.book_id) book.r_cnt -= 1 book.r_score -= review.score book.save() review.delete() return Response({'message': 'deleted!!'})