如何将JavaScript对象作为URL传递给Django服务器

时间:2020-06-02 09:26:06

标签: javascript django

我的html中有add_to_cart按钮。单击它后,我要获取选定的内容并将其发送到我的views.py。我已经创建了一个Ajax请求,并且希望通过URL将 item 对象发送到我的views.py。请记住,项目中的浇头和其他是NodeList。我正在使用Django。

 add_to_cart.addEventListener("click", ()=>{

    const item = {
        "item_name": document.querySelector("#itemname").textContent,
        "quantity" : document.querySelector("#quantity").value,
        "price" : document.querySelector("#price").dataset.price,
        "size" : document.querySelector(".size:checked").value,
        "toppings" : document.querySelectorAll(".topping:checked"),
        "extra" : document.querySelectorAll(".extra:checked")
    }

    const request = new XMLHttpRequest();
    request.open('GET', `/cart_item/${item}`, true);

    request.onload = () => {
        const data = JSON.parse(request.responseText);
        if (data.success){
            window.location.href = `http://127.0.0.1:8000/cart/cart_item/${item}`;
        }
        else{
            window.location.href = "http://127.0.0.1:8000/user/login";
        }
    }
    request.send();
    return false;
})

在我的urls.py

urlpatterns = [
path("", views.index, name="cart"),
path("cart_item/<item>", views.cart_item, name="cart_item")
]

在views.py

def cart_item(request, item):
    if not request.user.is_authenticated:
        print("okay")
        messages.error(request, "Please login first to add to cart.")
        return JsonResponse({"success": False})
    return JsonResponse({"success": True})

上面是我尝试做的,但出现此错误未找到:/ cart_item / [对象对象] 我也曾尝试在Google上搜索执行此操作的正确方法,但找不到令人满意的解释。如果您有关于如何在URL中传递对象的解决方案或说明,请告知。 非常感谢。

0 个答案:

没有答案