如何将javascript变量传递给django模板标签

Posted

技术标签:

【中文标题】如何将javascript变量传递给django模板标签【英文标题】:How to pass javascript variable to a django template tag 【发布时间】:2020-04-24 07:47:49 【问题描述】:

我创建了一个模板标签,它将接受 2 个参数,返回一个文本。目前,我无法将 javascript 变量值传递给 django 模板标签。你能帮帮我吗?

带有模板标签的javascript代码

function formatState (state) 
        if (!state.id) 
            return state.text;
        
        console.log(state.text);
        var x = "% get_data state.text 'account' %";
        var $state = $('<span class="badge">' + x + '</span>');
        return $state;
    

模板标签

@register.simple_tag
def get_data(value, module):
    *****
    x = "hello"
    return x

【问题讨论】:

【参考方案1】:

您的 Django 模板在服务器上呈现,然后发送到运行 JS 的客户端。您无法从模板中的服务器访问 JS 变量,因为它们不存在。

如果您需要使用 Django 从前端访问数据,您可以创建一个视图函数,该函数将接受 POST 请求并使用 JS 将数据发送到您的服务器,然后返回一些您可以添加到页面的模板JS.

【讨论】:

以上是关于如何将javascript变量传递给django模板标签的主要内容,如果未能解决你的问题,请参考以下文章

django:如何将模板变量传递给 javascript onclick 例程?

如何将javascript变量传递给django自定义过滤器

如何将javascript变量传递给django自定义过滤器

将 django 变量传递给 javascript

将 Javascript 变量传递给 Django 标签

Django - 将变量传递给同一脚本标签内的 javascript 文件