Как показать стоимость корзины в реальном времени без перезагрузки страницы
как мне показать значение корзины в реальном времени, когда кто-то добавляет что-то в корзину без перезагрузки страницы, моя функция уже обрабатывает логику, за исключением того, что она должна перезагружаться, я пытаюсь заменить location.reload() в моей функции javascript на что-то, что просто покажет {{cartItems}} значение реального времени на nav без перезагрузки страницы, когда кто-то нажимает кнопку "add-to-cart", прямо сейчас все должно перезагружаться, чтобы работать. Буду очень признателен, если кто-нибудь сможет помочь, thx!
views.py
def shop(request):
data = cartData(request)
cartItems = data['cartItems']
products = Product.objects.all()
context = {"products": products, "cartItems": cartItems}
#the nav is able to access home context
def home(request):
data = cartData(request)
cartItems = data['cartItems']
context = {"cartItems": cartItems}
cart.js
var updateBtns = document.getElementsByClassName('update-cart')
for(var i=0; i < updateBtns.length; i++){
updateBtns[i].addEventListener('click', function(){
var productId = this.dataset.product
var action = this.dataset.action
console.log('productId:', productId, 'action:', action)
console.log('USER:', user)
if(user === 'AnonymousUser'){
addCookieItem(productId, action)
}else{
updateUserOrder(productId, action)
}
})
}
function addCookieItem(productId, action){
console.log('User is not authenticated')
if (action == 'add'){
if (cart[productId] == undefined){
cart[productId] = {'quantity':1}
}else{
cart[productId]['quantity'] += 1
}
}
if (action == 'remove'){
cart[productId]['quantity'] -= 1
if (cart[productId]['quantity'] <= 0){
console.log('Item should be deleted')
delete cart[productId];
}
}
console.log('CART:', cart)
document.cookie ='cart=' + JSON.stringify(cart) + ";domain=;path=/"
location.reload()
/*replace location.reload()*/
}
шаблон
{% for product in products %}
<div class="shop-card">
<a href="{{product.slug}}">
<div class="image-card-wrapper">
<img id="store-cart-img" src="{{ product.image_URL }}">
</div>
<div class="card-shop-info">
<p>{{product.name}}</p>
<p id="styleb">${{product.final_price | floatformat:2}} | <a data-product="{{product.id}}" data-action="add" class="add-to-cart-action update-cart">Add to cart</a></p>
</div>
</a>
</div>
{% endfor %}