Как передать свои переменные контекста в файл javascript в Django?

Этот вопрос должен быть очевиден, но я не могу его понять.

В шаблоне я ссылаюсь на файл js в моем каталоге мультимедиа. Из этого файла я хотел бы получить доступ к переменной контекста, например {{my_chart}}.

Но разве синтаксис отличается ?? Спасибо!!

26
задан user963936 30 December 2011 в 20:45
поделиться

2 ответа

В дополнение к ответу Анджея Бобака вы также можете сгенерировать глобальную переменную в Javascript из вашего шаблона. Например, ваш шаблон может генерировать код, подобный следующему:

<script>
   var my_chart = {{ the_chart }};
</script>

Ваш сценарий может затем ссылаться на my_chart.

24
ответ дан 28 November 2019 в 06:59
поделиться

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

<script>
   var my_var = '{{ python_object|escapejs }}';
</script>

Кроме того, прежде чем поместить этот объект в контекст, лучше сначала сериализовать его в JSON, либо вам придется в конечном итоге выполнить анализ строки. Я также обнаружил, что объекты date должны быть преобразованы в строки перед этим шагом.

import jsonpickle

context['python_object'] = jsonpickle.encode(python_object)

И, наконец, в JS вы можете правильно перебирать объект и использовать значения, которые вы, вероятно, использовали бы в python, выполнив:

var my_var_parsed = jQuery.parseJSON(my_var);
6
ответ дан 28 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: