Django: передача JSON из вида в шаблон

на views.py, У меня есть данные временных рядов, хранящиеся в словаре следующим образом:

time_series = {"timestamp1": occurrences, "timestamp2": occurrences}

каждая timestamp находится во времени unix и occurrences - целое число.

есть ли способ передать данные временных рядов как объект json в контексте

3 ответов


Если библиотека интерфейса нуждается в разборе JSON, вы можете использовать json библиотека для преобразования Python dict в допустимую строку JSON. Используйте escapejs фильтр

import json

def foo(request):
    json_string = json.dumps(<time_series>)
    render(request, "foo.html", {'time_series_json_string': json_string})


<script>
    var jsonObject = JSON.parse('{{ time_series_json_string | escapejs }}');
</script>

вы пробовали передать что-то вроде json.dumps(time_series) функции render?


передать json.dumps значение шаблона. Это уже действительная строка JSON, поэтому вам не нужно ее анализировать или что-то еще. Только при рендеринге в шаблоне отметьте его как safe для предотвращения цитирования HTML.

# views.py
def foo(request):
    time_series_json = json.dumps(time_series)
    return render(request, 
                  "template.html", 
                  context={'time_series': time_series_json})

# in the template
<script>
    const timeSeries = {{ time_series | safe }};
</script>