如何使用包含多行的django模板变量分配javascript变量?

时间:2012-05-20 15:02:32

标签: javascript django

我从mysql longtext字段中获取数据。它可以包含新行。 此数据传递到模板,我将此longtext数据分配给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', '\"+')

1 个答案:

答案 0 :(得分:3)

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

通过快速搜索,Django似乎没有这个模板过滤器,但它不应该太难添加。假设您的json过滤器被称为tojson,模板中的代码将如下所示:

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

以下是过滤器的外观:

import json
@register.filter
def tojson(value):
    return json.dumps(value)