带有 jQ​​uery/数据表的 Django

问题描述

我被分配了一项任务,要求我理解以下使用 jQuery 和数据表的 Python 代码

req = request.GET
sort_col = req['columns[%s][data]' % req['order[0][column]']]
glob_search_val = req['search[value]']
if req['order[0][dir]'] != 'asc':

我是 jQuery 和数据表的新手。用法与访问普通 Python 列表/字典的方式大不相同。例如, order[0][column] 显然是一个变量,但它被引用,这意味着 Python 中的文字。括号中的列似乎是一个变量,它再次在引号内并且未初始化。在 datables documentation 顺序中是按索引访问的 2D 数组,例如 order[0][0]。我对列[%s][数据] 中的数据有类似的问题,列[%s][数据] 返回什么?

在哪里可以找到有关列、顺序、搜索(和其他)参数在 Django 中如何工作的更多信息?

解决方法

您引用的那些参数名称(排序、列、搜索)只是 request.GET QueryDict 中的键。对于 GET 请求中的这些参数名称,Django 没有任何内在的东西(即,对于这些参数键名称,Django 中没有任何神奇的事情发生)。

%s%s 是旧式 python string formatting 的一部分,因此 %s 将替换为 req['order[0][column]] 中的任何内容,然后将存储sort_col 中的排序列字段名称。

就 Django 中的实际过滤/搜索/排序等而言,这是通过 Django QuerySet API。据推测,您将排序/排序/搜索存储在数据库中并在数据表中显示的任何模型中定义的对象列表,例如FooModel.objects.filter(some_field=search_val).order_by(sort_col)