Шаблон Django: Как подключить передачу скрипта чата в Django Tag с помощью JavaScript?
Я работаю над проектом Django, в котором мне нужно условно вывести и выполнить скрипт чата на основе согласия пользователя с куки. Вот что у меня получилось на данный момент:
В моем шаблоне Django есть следующий фрагмент:
{% if page.page_type.chat_script %}
{{ page.page_type.chat_script|safe }}
{% endif %}
Этот сниппет отвечает за отрисовку скрипта чата (что-то вроде кода скрипта чата), который задается через админ-панель Django.
Однако я хочу, чтобы этот скрипт выполнялся только в том случае, если пользователь принял все куки. У меня уже есть отдельный JavaScript-файл (cookies_configuration.js), который обрабатывает согласие на использование cookie и внедряет различные скрипты в head или body после получения согласия (он отлично работает, когда я использую его с обычными различными скриптами, размещенными в других файлах).
Вот упрощенный пример того, как выглядит такая инъекция (небольшой фрагмент из моего кода):
'injections': [
{
'location': 'head',
'code': 'initGoogleAnalytics()'
},
]
Теперь я хочу сделать нечто подобное для скрипта чата - по сути, обернуть фрагмент шаблона Django в функцию типа initChatScript(), а затем вызывать эту функцию только после получения согласия на использование cookie.
Однако я не уверен, как динамически включить и выполнить этот код шаблона Django внутри функции JavaScript.
Я уже пытался сделать нечто подобное:
<script async type="text/javascript">
function initChatScript() {
{% if page.page_type.chat_script %}
{{ page.page_type.chat_script|safe }}
{% endif %}
}
</script>
Но, очевидно, это совсем не сработало.
Каким будет наилучший подход для достижения этой цели? **Есть ли способ вывести код шаблона условно или внедрить его в функцию JavaScript? **Или лучше использовать другой подход (возможно, придется изменить бизнес-логику и заменить теги django на обычный код, возможно, чистые скрипты)?
Любая помощь или руководство будут очень признательны!
Чтобы связать скрипт чата (или любой другой JavaScript) с шаблонами Django с помощью тегов Django, вам нужно передать динамические данные из вашего бэкенда Django в код JavaScript в ваших шаблонах