comfy/artel/store/views.py

53 wiersze
1.5 KiB
Python
Czysty Zwykły widok Historia

2023-05-21 15:49:13 +00:00
from django.http import JsonResponse
from django.views import View
2023-05-25 01:16:01 +00:00
from django.shortcuts import render
import json
2023-05-21 15:49:13 +00:00
class CartView(View):
def get(self, request):
cart = request.session.get('cart', {})
cart_items = cart.items()
response_data = {
'cart_items': [{
'product_id': key,
'quantity': value
} for key, value in cart_items]
}
return JsonResponse(response_data)
class CartItemView(View):
allowed_methods = ['POST', 'DELETE']
def post(self, request):
product_id = request.POST.get('product_id')
quantity = request.POST.get('quantity')
cart = request.session.get('cart', {})
cart[product_id] = quantity
request.session['cart'] = cart
return JsonResponse({'message': 'Item added to cart.'})
def delete(self, request, cart_item_id):
cart = request.session.get('cart', {})
2023-05-25 01:16:01 +00:00
if str(cart_item_id) in cart:
del cart[str(cart_item_id)]
2023-05-21 15:49:13 +00:00
request.session['cart'] = cart
2023-05-25 01:16:01 +00:00
return JsonResponse({'message': 'Item deleted from cart.'})
class CartPageView(View):
template_name = 'store/cart.html'
def get(self, request):
cart_view = CartView()
cart_response = cart_view.get(request)
cart_data = json.loads(cart_response.content)
context = {
'cart_items': cart_data['cart_items']
}
return render(request, self.template_name, context)