Helpers - компьютеры, интернет, программирование

Запрос AJAX к представлению Django извлекает данные, но список не заполняется

Попытка заполнить боковую панель статусом сеанса с сервера API. Возникли проблемы с использованием модифицированного примера, показанного здесь:

Как динамически генерировать список html из массива json, полученного через вызов ajax?

Я могу заставить консоль регистрировать значения dict, но когда я пытаюсь заполнить список в соответствии с примером, он ничего не показывает на странице. Я также не вижу ошибок консоли разработчика.

HTML:

<div id="sessionstatuslist">
        </div>

Аякс-функция:

function sessionStatus(){
    var _url = "ajax/get_sessionstatus";
    var request = $.ajax({
        "url": _url,
        dataType : 'json',
        type : 'GET',
        data: {},
    success: function (data) {
                var list_html = "<ol>";
                for( var i=0; i <data.length; i++) {
                   list_html += "<li>" + data[i] + "</li>";
                 }
                list_html += "</ol>"
                $("#sessionstatuslist").html(list_html);
            },
            error: function(data) {
                console.log('there was a problem');
            }
         });
         return false;    
     };

Вид:

def Getsessionstatus(request):
    sessionstatus_list = {'session 1': 'running', 'session 2': 'idle',}
    data = sessionstatus_list
return JsonResponse(data)
18.05.2020

  • Вы видели, что показывает console.log(data)? 18.05.2020
  • да, если я переключу функцию успеха на console.log(data); Я получаю {сеанс 1: работает, сеанс 2: бездействует} сеанс 2: сеанс бездействия 1: работает proto: объект 18.05.2020
  • не переключайте функцию успеха. Добавьте console.log() в свою функцию успеха и посмотрите, работает ли ваша консоль в функции успеха. 18.05.2020
  • Я получаю ‹ol›‹/ol›, но в списке нет данных 19.05.2020
  • добавьте console.log(data[i]) в цикл for, чтобы увидеть, что это повторяющийся список. 19.05.2020
  • Это помогло, спасибо. Я смог решить свою проблему. Значения свойств объекта не были доступны для функции без использования метода для их возврата...? Кажется, не работает. 19.05.2020

Ответы:


1

Исправить было очень легко,

function sessionStatus(){
    var _url = "ajax/get_sessionstatus";
    var request = $.ajax({
        "url": _url,
        dataType : 'json',
        type : 'GET',
        data: {},
    success: function (data) {
                var list_html = "<ol>";
                data = Object.values(data);
                for( var i=0; i <data.length; i++) {
                   list_html += "<li>" + data[i] + "</li>";
                 }
                list_html += "</ol>"
                $("#sessionstatuslist").html(list_html);
            },
            error: function(data) {
                console.log('there was a problem');
            }
         });
         return false;    
     };

Удалось добавить метод Object.values() для перечисления значений свойств массива. Кажется, это работает таким образом. Вероятно, есть лучший способ с помощью метода Jquery Map().

19.05.2020
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..