1.templates\store\product.html
(... 생략 ...)
},
success : function(json){
console.log(json)
$('#cart_quantity').text(json.qty)
//추가 dev_38
location.reload();
(... 생략 ...)
2.store\views.py
from django.http import JsonResponse
from django.shortcuts import get_object_or_404, render
from django.shortcuts import render
from cart.cart import Cart
from store.models import Product
from django.contrib import messages
def cart_summary(request):
cart = Cart(request)
cart_products = cart.get_prods()
quantities = cart.get_quants
totals = cart.cart_total()
return render(request, "cart/cart_summary.html",{"cart_products": cart_products,"quantities": quantities,"totals": totals})
def cart_add(request):
cart = Cart(request)
if request.POST.get('action') == 'post':
product_id = int(request.POST.get('product_id'))
print('product_id', product_id)
product_qty = int(request.POST.get('product_qty'))
product = get_object_or_404(Product,id=product_id)
print("프로덕트",product)
cart.add(product=product, quantity = product_qty)
cart_quantity = cart.__len__()
response = JsonResponse({'qty': cart_quantity})
messages.success(request,"장바구니에 해당 상품이 추가되었습니다.")
return response
def cart_delete(request):
cart = Cart(request)
if request.POST.get('action') == 'post':
print('=========')
product_id = int(request.POST.get('product_id'))
print('product_id =============== ', product_id)
cart.delete(product=product_id)
response = JsonResponse({'product':product_id})
messages.success(request,"장바구니에서 해당 상품이 삭제되었습니다.")
return response
def cart_update(request):
cart = Cart(request)
if request.POST.get('action') == 'post':
product_id = int(request.POST.get('product_id'))
product_qty = int(request.POST.get('product_qty'))
cart.update(product=product_id, quantity=product_qty)
response = JsonResponse({'qty':product_qty})
messages.success(request,"장바구니가 업데이트 되었습니다.")
return response
3.templates\layout\navbar.html - 파일 생성
{% if messages %}
{% for message in messages %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong>메세지</strong>
{{message}}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
{%endif%}
4.templates\layout\navbar.html
(... 생략 ...)
</nav>
{% include 'layout/message.html' %}
</div>

