将数据从TextField传递到网页

时间:2016-03-26 01:20:46

标签: javascript python html django

我在Django中有一个TextField的模型。我想通过

TextField的信息传递到网页上
return render(request, 'index.html', {
    'textFieldValue': textFieldValue,
    'context': RequestContext(request),
})

我遇到的问题是,TextField可以包含新行,当它通过以下方式传递到我的网页时:

var textFieldValue = "{{ textFieldValue }}";

变成:

var textFieldValue = "Testing string is this. 
New line abcde
Second new lineabcde";

由于TextField中有多行并因此破坏了JavaScript var模板,因此会返回错误。有没有办法解决这个问题?我是否需要将字符串拆分为每行的数组,然后将其传递到我的网页中,并具有解析它的功能?

我也尝试过:

var textFieldValue = "{{ textFieldValue|safe }}";

但它是一回事。

我想这样做,因为我想将其粘贴到我的页面上的textarea,这看起来像TextField应该在Django管理员中显示的内容。

我想将来会出现"'引文和@#等符号的问题。

这对我来说最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用Django内置的escapejs过滤器(文档here):

{{ value|escapejs }}
  

例如,如果值为"testing\r\njavascript \'string" <b>escaping</b>",则输出为"testing\\u000D\\u000Ajavascript \\u0027string\\u0022 \\u003Cb\\u003Eescaping\\u003C/b\\u003E"

注意:这不会使字符串在HTML中使用安全,但在使用模板生成JavaScript / JSON时确实可以防止语法错误。