我在views.py中的方法尝试获取product_slug
,因为他需要product = Product.objects.get(slug=product_slug)
并将此产品添加到购物车中。您尝试将XMLHttpRequest
与JS
一起使用,但出现错误500。我在做什么错了?
urls.py
url(r'^cart/create/$', views.cart_create, name='cart_create'),
views.py
def cart_create(request):
cart = Cart(request)
product_slug = request.GET.get('product_slug')
product = Product.objects.get(slug=product_slug)
cart.add(product=product)
return JsonResponse({'200':'OK'})
product_list.html
<a href="javascript:void(0);" class="add_to_cart" data-slug="{{ product.slug }}">Add</a>
base.html
var add_to_cart = document.getElementsByClassName('add_to_cart');
for(var i = 0; i < add_to_cart.length; i++) {
product_slug = add_to_cart[i].getAttribute('data-slug')
add_to_cart[i].onclick = function() {
loadA(product_slug)
}
}
function loadA(product_slug) {
var xhr = new XMLHttpRequest();
url = "{% url 'cart:cart_create' %}" + product_slug
xhr.open('GET', url);
xhr.send();
if (xhr.status != 200) {
console.log('no')
} else {
console.log('ye')
}
}
在console.log
中输出no
和错误(Internal Server Error)
。请帮帮我。
我尝试使用干净的javascript/XMLHttp
>而不用jQuery/Ajax
$(".add_to_cart").click(function() {
product_slug = $(this).attr("data-slug")
data = {
product_slug: product_slug,
},
$.ajax({
type: "GET",
url: "{% url 'cart:cart_create' %}",
data: data,
success: function(data) {
$(".cart_score").empty().append(data.cart_length + " товаров " + data.cart_total + " ₽")
},
});
});