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

标签 javascript django django-templates django-template-filters

有没有办法在 django 模板代码中访问 JavaScript 变量,如下所示:

var tags_v1 = '{{ form.tags_1.value }}';
tags_v1 = tags_v1.split('{{ form.value_delim }}');
tags_v1 = tags_v1.map(function (item) { return '{{ $(item)|get_tag }}'; }) ;

我想将“item”的值作为变量传递给自定义过滤器“get_tag”。

最佳答案

您似乎忽略了 Django 模板代码和浏览器内 JavaScript 之间的重要区别:

Django 模板构建在服务器端,而 JavaScript 在客户端执行。

这意味着模板代码总是在 JavaScript 之前执行(因为它是在页面发送到客户端之前由服务器执行的)。因此,不可能以您想要的方式混合 JavaScript 和 Django 代码。

例如,您似乎认为 JavaScript 循环中的 Django 代码会执行多次。那当然不是真的。 Django 代码只在服务器端执行一次,而不考虑稍后在浏览器中执行的 JavaScript(即在不同的机器上!)。对于 Django,您的 JavaScript 代码只是一段毫无意义的文本。

所以,答案是:如果要拆分字符串并对每个项目应用 Django 过滤器,则需要在 Django 的服务器端拆分字符串。您不能在 JavaScript 中拆分它,然后在 Django 中操作结果列表,因为 Django 运行得更早,并且在不同的计算机上。

关于javascript - 如何将javascript变量传递给django自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20952156/

相关文章:

javascript - 将格式输入类型 ='date' 从 mm-dd-yyyy 更改为 dd-mm-yyyy Laravel

python - 扩展 Django 用户模型无法访问属性

python - Django:将模型字段标记为对模板安全的最佳实践

Django - 复选框数组

javascript - 从 Ember.js 中的 Ember 服务过渡

javascript - 加载 CSS 后触发的 jQuery 事件?

javascript - 如何将 promise 中的错误返回到 redux saga catch block ?现在得到错误未定义

python - 为什么 vim 红色突出显示 Django 模板中的结束标签?

python - 在 order_by() 中使用 Django 自定义模型方法属性

django - Controller 逻辑和模板逻辑,分页在哪里划线?