如何在django中访问数据表之外的数据表的ajax响应?
Posted
技术标签:
【中文标题】如何在django中访问数据表之外的数据表的ajax响应?【英文标题】:How to access the ajax response of the datatable outside the datatable in django? 【发布时间】:2020-04-25 00:51:59 【问题描述】:在我的 django 应用程序中,数据表发出 ajax REST api 请求,其中响应如下:
"data": ["some content here"],
"time_data": [
"Last_updated": "Jan 07 2020 06: 09 CST",
"Next_scheduled": "Jan 07 2020 07: 09 CST"
]
这是django REST API的视图如下:
class clustersView(views.APIView):
def get(self, request):
results =
clusters = get_collection('clusters')
results['data'] = ClusterSerializer(clusters, many=True).data
results['time_data'] = get_collection('time_data')
return Response(results)
在上述响应 json 中,data
键已按如下方式访问并用于填充数据表,并且工作正常。
$(document).ready(function ()
myTable = $('#table').DataTable(
ajax:
"type": "GET",
"url": "% url 'Clusters' %",
,
columns: [
'data': 'Master' ,
'data': 'Workers' ,
'data': 'Build' ,
'data': 'Team' ]
);
);
但是下一个键,即time_data
需要在数据表之外的 div 中使用。
如何在 javascript 中访问响应内容?这样我就可以在响应中使用time_data
。
注意:访问 django 响应变量 results
,会抛出未定义变量的错误。
【问题讨论】:
response.time_data 将返回数组,因此 response.time_data[0] 将是包含两个键/值的第一个对象。假设response
是您在 javascript 中处理的对象
但是如果你向我们展示你的javascript代码可能会更清楚
这能回答你的问题吗? How can I access and process nested objects, arrays or JSON?
@dirkgroten 我已经用更多信息更新了这个问题,请查看它。
查看this 以获取有关如何访问数据并在另一个 DOM 元素中使用数据的示例。还有更多关于它here
【参考方案1】:
看看ajax.dataSrc
。当用作回调时,您可以在将响应传递给 DataTables 之前对其进行操作,并且显然还可以初始化或填充其他元素:
myTable = $('#table').DataTable(
ajax:
type: "GET",
url: "% url 'Clusters' %",
dataSrc: function(data)
doSomethingWith( data.time_data )
return data.data
,
columns: [ ... ]
)
【讨论】:
以上是关于如何在django中访问数据表之外的数据表的ajax响应?的主要内容,如果未能解决你的问题,请参考以下文章