Шаблон 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 в ваших шаблонах

Вернуться на верх