【发布时间】:2015-04-10 08:01:45
【问题描述】:
我正在使用 django 1.8、Python 2.7.5、django-datatables-view 1.2 和 datatables 1.10.6。尝试使用 columndefs 和 columns.render 时出现以下错误:
警告:请求未知...
我查看了here 上的文档,基本上发现 datatables 不知道我请求什么数据,因为它找不到它。所以我查看了数据是如何返回的:
{
"recordsTotal": 176,
"recordsFiltered": 176,
"draw": 0,
"data": [
[
109,
"Hostname1",
"1.1.1.1",
"Excluded",
"Down"
],
[
116,
"Hostname2",
"2.2.2.2",
"Excluded",
"Up"
],
...
],
"result": "ok"
}
所以我在使用 PHP 之前使用过数据表,为了使用列 def,您需要一个键:值对,以便您可以定义 "data": "Key",这显然不是。我想我已经缩小了构建准备结果的范围:
def prepare_results(self, qs):
data = []
for item in qs:
data.append([self.render_column(item, column) for column in self.get_columns()])
return data
我终其一生都无法弄清楚如何将此列表转换为以下列方式返回结果的字典:
{
"recordsTotal": 176,
"recordsFiltered": 176,
"draw": 0,
"data": [
{
"Rest Id": "109",
"Host Name": "Hostname1",
"Ip Address": "1.1.1.1",
"Mode": "Excluded",
"State": "Down"
},
{
"Rest Id": "116",
"Host Name": "Hostname2",
"Ip Address": "2.2.2.2",
"Mode": "Excluded",
"State": "Up"
},
...
],
"result": "ok"
}
我知道我可以通过 dict 理解完成我想要做的事情,但我无法找到一种方法来完全按照我希望返回输出的方式来获得它。我还必须相信,有一种比在已经准备好的列表列表上执行 dict 理解更好的方法。任何和所有的帮助将不胜感激。提前谢谢你。
【问题讨论】:
标签: python list dictionary datatables datatables-1.10