Визуализация объекта JSON из контекста в шаблоне Django как Ajax DataTable - PullRequest
0 голосов
/ 17 сентября 2018

Я ищу многоразовое и простое решение для визуализации действительного объекта JSON в виде таблицы HTML с использованием Django.Процесс выглядит следующим образом:

Views.py

from utils load get_data_frame

class MyView(TemplateView):
    template_name = "my_template.html"
    df = get_data_frame()
    column_data = [{"field": val, "title": val} for val in df.columns.values]
    json_object = df.to_json(orient='records')
    context['json_data'] = json_object
    context['columns'] = column_data

my_template.html

<script>
    var my_data = {{ json_data|safe }};
    var column_data = {{ columns|safe }};
    $( function() {
        $( "#my-cool-table" ).dataTable(
        {
            "columnDefs": [{
            "defaultContent": "-",
            "targets": "_all"
            }],
            "data": my_data,
            "columns": column_data,
        });
    });
</script>

{% if json_data %}
    <table id="my-cool-table">
    <thead>
    </thead>
    <tbody>
    </tbody>
    </table>
{% else %}

Однако, когда я отображаю этот шаблон, столбцы отображаются без проблем, ноданные таблицы отображают только значения по умолчанию "-", указанные в defaultContent.Я пропускаю аргумент для dataTables?Или тег <script> не в том месте?

Когда я печатаю переменную my_data в консоли Firefox, она появляется в формате:

Array(17) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]

1 Ответ

0 голосов
/ 19 сентября 2018

выглядит нормально. Я считаю, что вам просто нужно заменить field на data:

column_data = [{"data": val, "title": val} for val in df.columns.values]
                 ^^^^

columns.data указать свойство / источник объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...