XMLHttpRequest с помощью Django -> GET, ERROR 500 - PullRequest
0 голосов
/ 08 мая 2019

Мой метод в views.py попробуйте получить product_slug, потому что ему нужно product = Product.objects.get(slug=product_slug) и добавить этот товар в корзину. U попробуйте использовать 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 + " &#8381;")
        },
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...