Dieser Kontext ProzessorWie aktualisiert man die Django-Vorlagenvariable, ohne die Seite neu zu laden (AJAX)?
def cart_proc(request):
return (dict(cart=Cart(request)))
gibt mir Variable {{}} Warenkorb in meiner Vorlage, so kann ich {{cart.count}} in base.html. count ist eine Methode, die die Anzahl der Produkte im Warenkorb zählt.
Das ist mein js
function addProduct(){
$('form.add-product').on('submit', function(){
var link = $(this)
var quantity = $(this).find('#id_quantity').val()
$.ajax({
'url': link.attr('action'),
'type': 'POST',
'dataType': 'json',
'data': {
'quantity': quantity,
'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val()
},
'success': function(data, status, xhr){
alert('Success');
return false;
},
'error': function(xhr, status, error){
alert('Error on server. Please try again later.');
return false;
}
});
return false;
});
}
Und meiner Meinung nach (ich django-Wagen für den Warenkorb verwenden)
def add_to_cart(request, id):
form = QuantityForm(request.POST)
if form.is_valid():
product = Product.objects.get(id=id)
quantity = request.POST['quantity']
cart = Cart(request)
cart.add(product, product.price, quantity)
return JsonResponse({'status': 'success'})
I {{cart.count}}, wenn ich hinzufügen Produkt im Warenkorb aktualisieren möchten mit AJAX, ohne Seite neu zu laden. Jetzt aktualisiert es nur nach dem Neuladen.
Ich habe es getan. Vielen Dank für die Erklärung. –