我收到此错误:
MultiValueDictKeyError at /orders/ajax/add_order_line
"'cart'"
这是我的剧本
var cart = {
0: {
id: "1",
quantity: 50
}
}
$.ajax({
url: myURL,
type: "post",
data: {cart: cart},
success: function() {},
error: function(){}
});
同时在我的django视图中,错误发生在这一行:
def something(request):
cart = request.POST['cart']
答案 0 :(得分:0)
使用多值的get
方法
request.POST.get('cart')
答案 1 :(得分:0)
您的数据是嵌套数组,因此您无法使用默认的默认application/x-www-form-urlencoded
内容类型发送数据。
您可以将数据发送为json:
$.ajax({
url: myURL,
type: "post",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({cart: cart}),
success: function() {},
error: function(){}
});
然后在您的视图中,您必须从request.body
加载json字符串,而不是使用request.POST
(仅用于表单编码数据)。
import json
def my_view(reqest):
data = json.loads(request.body.decode('utf-8'))
cart = data.get('cart')