从Django中的Datatable获取查询列表参数

时间:2019-04-01 12:17:34

标签: django datatable

我将DataTabledjango一起使用,并且试图设置serverSide选项。除order参数外,其他所有程序都工作正常。 Datatable会将所有参数发送到顺序如下的后端:

order[0][column]: 0
order[0][dir]: asc
order[1][column]: 2
order[1][dir]: desc

我正在尝试使用getlist()函数来获取列表中的所有订单参数,但是每次都得到一个空列表

orders = request.GET.getlist('order[]')

我想念什么?

2 个答案:

答案 0 :(得分:0)

如果您要查找的关键字不存在,通常您会得到getlist的空列表。尝试使用request.GET.getlist('order')

答案 1 :(得分:0)

好的,我找到了解决方案。我将ajax作为一种形式编码发送,并且它以文本字符串order[0][column] order[0][dir]的形式获取命令的键。我要做的是将数据表中的ajax作为JSON发送,并在视图中使用json.loads()获取参数:

数据表

"ajax": {
       "url": url,
       "contentType": "application/json",
       "type": "POST",
       "data": function (d) {
          return JSON.stringify(d);
        }
},

查看

request_data = json.loads(request.body)
dt_draw = request_data.get('draw')
dt_start = request_data.get('start')
dt_length = request_data.get('length')
dt_search = request_data.get('search').get('value')
dt_order = request_data.get('order')