【问题标题】:Django: Ajax data changes when Django gets itDjango:Ajax 数据在 Django 获取时发生变化
【发布时间】:2020-11-24 15:40:38
【问题描述】:

有些奇怪的事情发生在我身上,我不知道为什么:

我有这些数据想通过 ajax 发送到 django:

const params = {
    "status__in":['pendant','confirmed'],
    "access_date__year":2020,
    "access_date__month":05,
    "billable":true
}

我使用 datatable 来创建一个包含我收到的数据的表格,这是 datatable 的 ajax 选项:

const ajax_options = {
    ajax: {
        url:get_consumptions_url,
        data: params
    }
}

然后我使用以下代码获取 ajax 参数:

ajax_data = request.GET.dict()

所以在尝试将数组添加到我的参数之前一切正常,但是当我在 python 中检查 ajax 参数调试时,我得到了这个:

{
'access_date__month': '10', 
'access_date__year': '2020', 
'billable': 'true', 
'status__in[]': 'confirmed'
}

检查“status__in”,它与我在参数中的完全不同。

为什么会这样?

【问题讨论】:

    标签: django ajax datatable


    【解决方案1】:

    当 ajax 调用中的参数值是一个数组时,它在 Django 请求的 POST 中被视为一个列表,您应该使用getlist 访问该列表。请参阅Django docs 了解更多信息。

    【讨论】:

    • 它正在工作,但为什么使用像 request.GET.dict() 这样的方法只返回数组的最后一个值?我的意思是,使用 .dict 我得到请求中的所有值,但在状态情况下,我只得到最后一个元素作为字符串。太奇怪了
    • @AngelQuesada 请浏览this ticket。关于它的更多信息。
    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2018-07-16
    相关资源
    最近更新 更多