django ajax,无法从get ajax请求中捕获列表

时间:2017-10-11 20:56:11

标签: ajax django

我正在尝试捕获ajax请求中的过滤器列表,但是虽然我可以捕获单个过滤器,但当我尝试捕获列表时,由于某种原因我只得到一个空列表。 下面是我的视图和ajax(jQuery)函数的相关部分。当我尝试使用$.ajax({ .... 'filters': fixed })发送单个过滤器时,这可以正常工作,但会失败并显示列表。

更新:尝试数据:{'filters': JSON.stringify([fixed])},确实将数据作为字符串传递给django '["fixed"]'(如果我不使用getlist,我可以处理,但.get然后json.loads( )但我认为这里必须有一个更简单的方法。

def quotes_results_filter_view(request):
    results_filters = request.GET.getlist('filters') or []
    quotes_results = request.session['quotes_results']
    for results_filter in results_filters:
      .......

Ajax功能:

$(document).ready(function () {
      $('#id_filter').change(function (e) {
        var fixed = $(this).val()
        console.log(fixed)
    $.ajax({
      url: '/users/filters/',
      data: {
        'filters': [fixed]
      },
      dataType: 'json',
      success: function (data) {
        console.log(data)
      }
    })

1 个答案:

答案 0 :(得分:1)

当您通过jQuery发送列表时,它会将关键字更改为 所以在Django你可能必须这样: request.GET.getlist('filters[]')