Django模板过滤器 - 一行

Posted

技术标签:

【中文标题】Django模板过滤器 - 一行【英文标题】:Django template filter - one line 【发布时间】:2011-04-12 16:09:51 【问题描述】:

我正在寻找一个 Django 模板过滤器,它可以将多行结构变成一条大行。有没有人实施过? 原因是 - 我有一个表单,form.as_p 创建了一个多行 html 片段,我想创建一个 html 片段的 javascript 变量,但是当我这样做时:

var new_div_text = 'form.as_p';

它不起作用。原因很明显,在像

这样的javascript结构中
var hello = 'Hello
world';    

无效!

【问题讨论】:

【参考方案1】:

阅读您的用例,您似乎并不想删除行。如果您的表单标签之一包含 ' 字符怎么办?糟糕,您的 javascript 现在无效。 Django 带有一个名为 escapejs 的过滤器,我们正是使用它来解决这个问题。

使用 escapejs,您可以输入:

var newDivText = ' form.as_p|escapejs '

而且您不必担心任何字符会破坏您的 javascript。

【讨论】:

没错!没想过单引号转义,因为 as_p 用的是双引号,不是单引号,但是我现在看到的,escapejs 真的是我需要的!

以上是关于Django模板过滤器 - 一行的主要内容,如果未能解决你的问题,请参考以下文章

“模板语法错误:过滤器无效:”;基于 django 文档的自定义 django 模板过滤器损坏,但模板标签有效

Django模板之模板变量过滤器

Django Template模板层 (下) ----------- 过滤器人性化过滤器模板继承模板加载

Django—— 模板层:变量过滤器标签自定义标签和过滤器

Django 模板过滤器语法错误

Django-模板语言和过滤器