Tengo una plantilla llamada canasta cada vez que quiero actualizar la cantidad del producto, funciona bien, pero el mensaje de éxito no aparece hasta que actualizo la página.
vistas.py:
def basket_update(request): basket = Basket(request) if request.POST.get('action') == 'post': book_id = int(request.POST.get('bookid')) book_qty = int(request.POST.get('bookqty')) basket.update(book=book_id, qty=book_qty) messages.success(request,"Basket Has Been Updated") basketqty = basket.__len__() baskettotal = basket.get_total_price() response = JsonResponse({'qty': basketqty, 'subtotal': baskettotal}) return responseajax:
$(document).on('click', '.update-button', function (e) { e.preventDefault(); var book_id = $(this).data('index'); $.ajax({ type: 'POST', url: '{% url "basket:basket_update" %}', data: { bookid: $(this).data('index'), bookqty: $('#select' + book_id + ' option:selected').text(), csrfmiddlewaretoken: "{{csrf_token}}", action: 'post' }, success: function (json) { document.getElementById("basket-qty").innerHTML = json.qty document.getElementById("subtotal").innerHTML = json.subtotal }, error: function (xhr, errmsg, err) {} }); })