2016-03-26 9 views
1

私はDjangoにTextFieldというモデルを持っています。私はTextFieldは、新しい行を含めることができるので、それは私のWebページ上に渡された時に実行してTextFieldからWebページにデータを渡す

return render(request, 'index.html', { 
    'textFieldValue': textFieldValue, 
    'context': RequestContext(request), 
}) 

私がいる問題があるを通じて、Webページ上にそのTextFieldからの情報を渡したい:

var textFieldValue = "{{ textFieldValue }}"; 

それは次のようになります。

による TextFieldとtのいくつかの行が存在するという事実にエラーを返します
var textFieldValue = "Testing string is this. 
New line abcde 
Second new lineabcde"; 

husはJavaScriptのvarテンプレートを破っています。これを修正する方法はありますか?文字列を各行の配列に分割し、それを私のWebページに渡し、それを解析する関数を用意する必要がありますか?

私も試してみました:

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

しかし、それは同じことです。

TextFieldがDjangoの管理者に表示されるはずのページのtextareaに貼り付けたいからです。

私は私がこれを行うための最善の方法だろう何"のようなシンボルと将来の問題、または'引用、および@#など

があるだろうことを想像しますか?あなたはescapejsフィルタ(ドキュメントhere)に建てられたDjangoの使うことができ

答えて

1

{{ value|escapejs }} 

例えばを値が"testing\r\njavascript \'string" <b>escaping</b>"ある場合は、出力が"testing\\u000D\\u000Ajavascript \\u0027string\\u0022 \\u003Cb\\u003Eescaping\\u003C/b\\u003E"になります。

:これは、HTMLで使用するための文字列を安全にしませんが、JavaScript/JSONを生成するためのテンプレートを使用した場合、構文エラーからあなたを守るん。

+0

ああ私の神。どうもありがとうございます!私はこのような何かが組み込まれているはずだと思っていた!編集:私がしたいことは、ユーザが 'textarea'にあるものを編集できることです。そして、そのテキストエリアはdjangoに送り返され、データベースの中に保存されます。私はどのように送り返すのが安全か? – Rohinder

+0

データを安全に送信する方法については、新しい質問を開く方が良いかもしれません。たとえば、AJAXや通常のPOST POSTなどの方法で詳細を記入することができます。 – Joseph

関連する問題