Этот вопрос должен быть очевиден, но я не могу его понять.
В шаблоне я ссылаюсь на файл js в моем каталоге мультимедиа. Из этого файла я хотел бы получить доступ к переменной контекста, например {{my_chart}}.
Но разве синтаксис отличается ?? Спасибо!!
В дополнение к ответу Анджея Бобака вы также можете сгенерировать глобальную переменную в Javascript из вашего шаблона. Например, ваш шаблон может генерировать код, подобный следующему:
<script>
var my_chart = {{ the_chart }};
</script>
Ваш сценарий может затем ссылаться на my_chart
.
Я также добавил бы, потому что я несколько раз сталкивался с ошибкой, что если переменная 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);