如何在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响应?的主要内容,如果未能解决你的问题,请参考以下文章

Datatables 在 DataTables 创建函数之外只有 10 行可访问

我如何在闭包之外访问数组?

如何在 Django 视图中访问本地存储中的数据?

如何在 django rest 框架中访问获取请求数据

访问闭包之外的数据

如何在 Django 应用程序中访问 PostgreSQL 数据库