首页 > 解决方案 > Django:Ajax 数据在 Django 获取时发生变化

问题描述

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

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

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

我使用数据表来创建一个包含我收到的数据的表,这是数据表的 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”,它与我在参数中的完全不同。

为什么会这样?

标签: djangoajaxdatatable

解决方案


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


推荐阅读