Django 模板:如何使用 JavaScript 连接传入 Django 标签的聊天脚本?

问题描述 投票:0回答:1

我正在开发一个 Django 项目,我需要根据用户 cookie 同意有条件地渲染和执行聊天脚本。这是我到目前为止所得到的:

在我的 Django 模板中,我有以下代码片段:

{% if page.page_type.chat_script %}
  {{ page.page_type.chat_script|safe }}
{% endif %}

此代码片段负责渲染通过 Django 管理面板设置的聊天脚本(类似于聊天脚本代码)。

但是,我只希望在用户接受所有 cookie 时执行此脚本。我已经有一个单独的 JavaScript 文件 (cookies_configuration.js),用于处理 cookie 同意并在同意后将各种脚本注入头部或主体(当我将它与放置在其他文件中的正常不同脚本一起使用时,它工作得很好)。

这是注射外观的简化示例(我的代码中的一小段):

'injections': [
    {
        'location': 'head',
        'code': 'initGoogleAnalytics()'
    },
]

现在,我想对聊天脚本做类似的事情 - 本质上将 Django 模板片段包装在像 initChatScript() 这样的函数中,然后仅在授予 cookie 同意后调用此函数。


但是,我不确定如何在 JavaScript 函数中动态包含并执行此 Django 模板代码。

我已经尝试过做这样的事情:

<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 cookies django-templates
1个回答
0
投票

要使用 Django 标签将聊天脚本(或任何 JavaScript)与 Django 模板连接起来,您需要将动态数据从 Django 后端传递到模板中的 JavaScript 代码

© www.soinside.com 2019 - 2024. All rights reserved.