1

我正在从 mysql 长文本字段中获取数据。它可以包含新行。此数据被传递给模板,我在模板中将此长文本数据分配给 javascript 变量。我现在遇到的问题是它会抱怨unterminated string literal.

这是因为它试图以这种方式分配数据

$("#id_review").val("kokokoeoarkgeorkgeorkgeorkg
er
g
gerag
earg
ea
gae
gr
er
gea
g
ear
ge
gae
rg
eagr

kok")

我尝试编写一个自定义过滤器,将添加"+到每一行的末尾,但效果不太好。所以我想知道这个问题可以以某种方式解决吗?

我对过滤器的尝试

@register.filter
def escapenewline(value):
    return value.replace('\n', '\"+')
4

1 回答 1

3

使用 JSON 编码器创建可以在 JavaScript 代码中使用的有效字符串。

从快速搜索来看,Django 似乎没有为此提供模板过滤器,但添加起来应该不会太难。假设您的 json 过滤器被调用tojson,模板中的代码将如下所示:

$("#id_review").val({{ whatever|tojson }});

以下是过滤器的外观:

import json
@register.filter
def tojson(value):
    return json.dumps(value)
于 2012-05-20T15:06:58.350 回答