Встроенная таблица данных Bokeh не отображается в Django - PullRequest
0 голосов
/ 18 февраля 2020

Я разработал Django веб-приложение, показывающее интерактивные карты, сгенерированные Bokeh и отправленные в шаблоны в виде script / div с использованием «компонент» (из bokeh.embed). Все элементы (рисунок, слайдер, заголовок) отображаются правильно, кроме DataTable, которое я могу показать в отдельном документе или в Jupyter, но не с «компонентами».

Я прочитал Bokeh DataTable не отображается в Flask, Встраивание графика bokeh и данных в flask и другие темы, которые помогли мне исправить JS / CSS ссылки, но это не помогло с моей проблемой.

Я попытался обернуть DataTable внутри разных модулей, таких как Panel, WidgetBox и др. c., После прочтения https://github.com/bokeh/bokeh/issues/4507, но безуспешно. Для простоты я использовал пример данных без ссылки на свои данные, чтобы сгенерировать таблицу в отдельном представлении Django, и создал отдельный шаблон.

На данный момент у меня закончились идеи. Я знаю, что у виджетов в Боке были проблемы с рендерингом, поэтому я предполагаю, что моя проблема может быть связана с этими проблемами, но, скорее всего, с моим отсутствием знаний. Код ниже.

DJANGO ПРОСМОТР :

def datatable_test(request):

data = dict(
    dates=[date(2014, 3, i + 1) for i in range(10)],
    downloads=[randint(0, 100) for i in range(10)],
)
source = ColumnDataSource(data)

columns = [
    TableColumn(field="dates", title="Date", formatter=DateFormatter()),
    TableColumn(field="downloads", title="Downloads"),
]

data_table_mth = DataTable(source=source, columns=columns, width=400, height=280)

layout = column(
    Spacer(width=100),
    WidgetBox(data_table_mth),
    )

script_table, div_table = components(layout)
output_file("DATATABLE TEST.html")
show(layout)

return render(request, 'integrated/datatable_test.html', {'script_table': script_table,'div_table': div_table})

DJANGO ШАБЛОН :

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>{% block title %}{% endblock %}</title>

  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-1.4.0.min.css" rel="stylesheet" type="text/css">
  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-1.4.0.min.css" rel="stylesheet" type="text/css">
  <link href="https://cdn.bokeh.org/bokeh/release/bokeh-tables-1.4.0.min.css" rel="stylesheet" type="text/css">


  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-1.4.0.min.js"></script>
  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-1.4.0.min.js"></script>
  <script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-1.4.0.min.js"></script>

  {{ script_table | safe }}

</head>

<body>
    <section class="content">
    <div class="row">
        <div class="col-md-12">
          <div class="box box-success">
            <div class="box-body">
                {{ div_table | safe }}
            </div>
          </div>
        </div>
      </div>
    </section>
</body>

Вывод в виде встроенной таблицы пуст: вывод в виде встроенной таблицы

Вывод в виде автономного html Работы: вывод как автономный

1 Ответ

1 голос
/ 18 февраля 2020

Как предположил bigreddot, я открыл консоль браузера, показывая следующие сообщения об ошибках, когда DataTable встроен в его исходное представление / шаблон:

консоль браузера

...