|
@@ -1,5 +1,5 @@
|
|
# coding=utf-8
|
|
# coding=utf-8
|
|
-import json
|
|
|
|
|
|
+import traceback
|
|
from django.db.models import Sum, F
|
|
from django.db.models import Sum, F
|
|
from rest_framework.decorators import action
|
|
from rest_framework.decorators import action
|
|
from rest_framework.views import APIView
|
|
from rest_framework.views import APIView
|
|
@@ -150,3 +150,42 @@ class ExportOrderDictView(APIView):
|
|
filename = attachment_save(export_data,'用户订单{}'.format(timezone.now().date()))
|
|
filename = attachment_save(export_data,'用户订单{}'.format(timezone.now().date()))
|
|
|
|
|
|
return response_ok({'filename': filename})
|
|
return response_ok({'filename': filename})
|
|
|
|
+
|
|
|
|
+class ShoppingCartViewSet(CustomModelViewSet):
|
|
|
|
+ permission_classes = [isLogin]
|
|
|
|
+ queryset = ShoppingCart.objects.filter()
|
|
|
|
+ serializer_class = ShoppingCartSerializer
|
|
|
|
+
|
|
|
|
+ def filter_queryset(self, queryset):
|
|
|
|
+ queryset = queryset.filter(create_user=self.request.user)
|
|
|
|
+ return queryset
|
|
|
|
+
|
|
|
|
+ @action(methods=['post'], detail=True)
|
|
|
|
+ def modify_quantity(self, request, pk):
|
|
|
|
+ quantity = self.request.POST.get('quantity')
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ instance = ShoppingCart.objects.filter(id=pk, create_user=self.request.user).first()
|
|
|
|
+ if instance:
|
|
|
|
+ instance.quantity = quantity
|
|
|
|
+ instance.save()
|
|
|
|
+ return response_ok()
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ traceback.print_exc()
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+
|
|
|
|
+ @action(methods=['post'], detail=False)
|
|
|
|
+ def del_shopping_carts(self, request):
|
|
|
|
+ item = request.POST.get('ids').split(',')
|
|
|
|
+ try:
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ ShoppingCart.objects.filter(id__in=item, create_user=self.request.user).delete()
|
|
|
|
+ return response_ok()
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ traceback.print_exc()
|
|
|
|
+ return response_error(str(e))
|