Как получить доступ к ответу ajax таблицы данных вне таблицы данных в django? - PullRequest
2 голосов
/ 07 января 2020

В моем приложении django таблица данных делает запрос API * REST ajax, где ответ выглядит следующим образом:

{
    "data": ["some content here"],
    "time_data": [
        {
            "Last_updated": "Jan 07 2020 06: 09 CST",
            "Next_scheduled": "Jan 07 2020 07: 09 CST"
        }
    ]
}

Это представление API REST django выглядит следующим образом:

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 выдает ошибку, что переменная не определена.

1 Ответ

1 голос
/ 07 января 2020

Взгляните на ajax.dataSrc. При использовании в качестве обратного вызова вы можете манипулировать ответом до его передачи в DataTables и, очевидно, инициализировать или заполнять другие элементы:

myTable = $('#table').DataTable({
  ajax: {
    type: "GET",
    url: "{% url 'Clusters' %}",
    dataSrc: function(data) {
      doSomethingWith( data.time_data )
      return data.data
    }
  },
  columns: [ ... ]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...