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

前端之家收集整理的这篇文章主要介绍了通过jQuery ajax调用将值列表传递给django视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过jQuery ajax调用将一个网页的数值(ids)列表传递给另一个.我无法弄清楚如何传递和读取列表中的所有值.我可以成功地发布和读取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.我究竟做错了什么?

编辑:
为了澄清,我需要在成分视图中的过滤器中使用我们的变量传递值[1,2].

解决方法

您可以通过request.POST.getlist(‘terid []’)在视图中访问此数组

在javascript中:

$.post(postUrl,{terid: values},function(response){
    alert(response);
});

在view.py中

request.POST.getlist('terid[]')

它对我来说是完美的.

猜你在找的jQuery相关文章