通过jQuery ajax调用将值列表传递给Django视图

我正在尝试使用jQuery ajax调用将数值列表(id)从一个网页传递到另一个网页。我不知道如何传递和读取列表中的所有值。我可以成功发布和读取1个值,但不能读取多个值。这是我到目前为止的内容:

jQuery:

var postUrl = "http://localhost:8000/ingredients/";

$('li').click(function(){

values = [1, 2];

$.ajax({

url: postUrl,

type: 'POST',

data: {'terid': values},

traditional: true,

dataType: 'html',

success: function(result){

$('#ingredients').append(result);

}

});

});

/成分/视图:

def ingredients(request):

if request.is_ajax():

ourid = request.POST.get('terid', False)

ingredients = Ingredience.objects.filter(food__id__in=ourid)

t = get_template('ingredients.html')

html = t.render(Context({'ingredients': ingredients,}))

return HttpResponse(html)

else:

html = '<p>This is not ajax</p>'

return HttpResponse(html)

使用Firebug,我可以看到POST包含两个ID,但格式可能错误(terid = 1&terid = 2)。因此,我的成分视图仅拾取terid = 2。我究竟做错了什么?

回答:

我找到了解决原始问题的方法。将其发布在此处作为答案,希望对你有所帮助。

jQuery:

var postUrl = "http://localhost:8000/ingredients/";

$('li').click(function(){

values = [1, 2];

var jsonText = JSON.stringify(values);

$.ajax({

url: postUrl,

type: 'POST',

data: jsonText,

traditional: true,

dataType: 'html',

success: function(result){

$('#ingredients').append(result);

}

});

});

/成分/视图:

def ingredients(request):

if request.is_ajax():

ourid = json.loads(request.raw_post_data)

ingredients = Ingredience.objects.filter(food__id__in=ourid)

t = get_template('ingredients.html')

html = t.render(Context({'ingredients': ingredients,}))

return HttpResponse(html)

else:

html = '<p>This is not ajax</p>'

return HttpResponse(html)

以上是 通过jQuery ajax调用将值列表传递给Django视图 的全部内容, 来源链接: utcz.com/qa/425515.html

回到顶部