Как использовать синтаксис шаблона django в статических файлах - PullRequest
0 голосов
/ 02 февраля 2019

Существует много документации, включая статические файлы в шаблонах Django.Тем не менее, я не могу найти ничего о том, как использовать синтаксис шаблона Django в статических файлах.

У меня был HTML-файл, который включал JavaScript между тегами, например:

var nodes = JSON.parse('{{nodes|safe}}');

Я переместил всеJavaScript в статический файл .js, который я обслуживаю.Он включен в HTML-файл следующим образом:

<script src="{% static 'citator/analysis.js' %}" type="text/javascript"></script>

Все работает нормально, за исключением частей файла .js, которые используют синтаксис шаблона Django.

Мой вопрос, есть лиспособ использовать синтаксис шаблона Django в javascript, если javascript не находится непосредственно в шаблоне, но служит статическим файлом и импортируется?Или мне нужно получить данные контекста в шаблоне, а затем передать их функциям в статическом файле?

1 Ответ

0 голосов
/ 02 февраля 2019

К сожалению, нет никакой функции Django, которая позволяла бы вам делать это напрямую.Основная проблема, которая предотвращает это, заключается в том, что контекст передается шаблону, который указан в вашей функции render() в представлении (или любой другой функции, которая ведет себя так же, например, render_to-response()).Наилучшим вариантом здесь будет использование встроенного js в вашем файле шаблона.Понятно, что для поддержания чистоты вашего кода вы бы не хотели, чтобы ваши js-функции были включены в ваш шаблон.Итак, получите нужные данные следующим образом:

<script>
    var nodes = JSON.parse('{{nodes|safe}}');
</script>

импортируйте свой статический js-файл после этого кода, и вы должны быть готовы, сохраняя ваш код чистым и модульным.

...