示例#1
0
 def create(self, request):
     cart_item = CartItemSerializer(data=request.data,
                                    context={'request': request})
     if cart_item.is_valid():
         cart_item.save()
         return Response(cart_item.data, status=status.HTTP_201_CREATED)
     else:
         return Response(cart_item.errors,
                         status=status.HTTP_400_BAD_REQUEST)
示例#2
0
 def update(self, request, pk):
     obj = self.get_obj(pk)
     serializer = CartItemSerializer(obj,
                                     data=request.data,
                                     context={'request': request})
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_200_OK)
     else:
         return Response(status=status.HTTP_400_BAD_REQUEST)
示例#3
0
 def retrieve(self, request, pk=None):
     try:
         obj = CartItem.objects.select_related('item').get(id=pk)
         serializer = CartItemSerializer(obj)
         return Response(serializer.data, status=status.HTTP_200_OK)
     except ObjectDoesNotExist:
         return Response(status=status.HTTP_404_NOT_FOUND)
示例#4
0
 def list(self, request):
     try:
         cart = request.user.current_cart
         queryset = CartItem.objects.select_related('item').filter(
             cart=cart)
         objects = self.paginate_queryset(queryset)
         serializer = CartItemSerializer(objects, many=True)
         return self.get_paginated_response(serializer.data)
     except ObjectDoesNotExist:
         return Response(status=status.HTTP_404_NOT_FOUND)
示例#5
0
    def writable(self, request):
        """
        마이컬리 - 상품 후기 - 작성 가능 후기 API

        ----
        헤더에 토큰이 담기지 않으면 에러가 발생합니다.

        작성 가능한 후기들이 카트 아이템의 형태로 나옵니다.
        """
        qs = CartItem.objects.filter(order__user=request.user).filter(status='c')
        serializers = CartItemSerializer(qs, many=True)
        return Response(serializers.data, status=status.HTTP_200_OK)
示例#6
0
    def report(self, request, *args, **kwargs):   

        service_requests = ServiceRequest.objects.all()

        serializer = ServiceRequestSerializer()

        new_list = []

        for service_request in service_requests:
            serializer = ServiceRequestSerializer(service_request)
            data_ = serializer.data
            cart_item = CartItem.objects.filter(service_request=service_request).first()
            cart_item_serializer = CartItemSerializer(cart_item)
            data_['transaction'] = cart_item_serializer.data
            new_list.append(data_)
        
        return Response(new_list)        
示例#7
0
 def get(self, request, format=None):
     cart = self.get_cart()
     self.cart = cart
     self.update_cart()
     #token = self.create_token(cart.id)
     items = CartItemSerializer(cart.cartitem_set.all(), many=True)
     print cart.items.all()
     data = {
         "token": self.token,
         "cart": cart.id,
         "total": cart.total,
         "subtotal": cart.subtotal,
         "tax_total": cart.tax_total,
         "count": cart.items.count(),
         "items": items.data,
     }
     return Response(data)
示例#8
0
class OrderSerializers(ModelSerializer):
    total_payment = serializers.SerializerMethodField()
    discount_payment = serializers.SerializerMethodField()
    discount_price = serializers.SerializerMethodField()
    items = CartItemSerializer(many=True)
    orderdetail = OrderDetailSerializers()
    user = UserOrderSerializers()

    class Meta:
        model = Order
        fields = ('id', 'items', 'total_payment', 'discount_price',
                  'discount_payment', 'orderdetail', 'user')

    def get_total_payment(self, obj):
        return obj.total_payment

    def get_discount_payment(self, obj):
        return obj.discount_payment

    def get_discount_price(self, obj):
        return int(obj.total_payment - obj.discount_payment)
示例#9
0
 def get_cart_items(self, obj):
     return CartItemSerializer(
         obj.cart_items.all(),
         many=True,
         context=self.context
     ).data