【问题标题】:django ajax, can't capture a list from get ajax requestdjango ajax,无法从获取 ajax 请求中捕获列表
【发布时间】:2018-03-23 16:06:54
【问题描述】:

我正在尝试在 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)
      }
    })

【问题讨论】:

    标签: ajax django


    【解决方案1】:

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

    【讨论】:

    • 你说得对,jQuery 做到了,这里与 Django 无关。很奇怪。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 2021-02-07
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    相关资源
    最近更新 更多