【发布时间】:2017-06-14 02:17:48
【问题描述】:
这个上下文处理器
def cart_proc(request):
return (dict(cart=Cart(request)))
在我的模板中给了我变量 {{cart}},所以我可以在 base.html 中使用 {{ cart.count }}。
count 是计算购物车中产品数量的方法。
这是我的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;
});
}
我的观点(我使用 django-cart 作为我的购物车)
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'})
当我使用 AJAX 在购物车中添加产品时,我想更新 {{cart.count}},而不需要重新加载页面。现在它只有在重新加载后才会更新。
【问题讨论】: