2012-07-19 10 views
8

から私の見解は、JSONを計算し、json.dumps()を出力し、私は辞書のキーdataとしてこれを渡しています。テンプレートのスクリプト要素にこれを渡そうとしていますが、レンダリング時にブラウザはpythonエスケープ文字列{"nodes": [{"count":......を取得しますが、これはjavascriptには読み込みできません。私が必要とするものは、JSONでエスケープされた文字列(これは{"nodes": [{"count":......のようなもの)として送るためのpythonです。 str(data)eval(data)を試してみましたが、成功しませんでした。基本的に私はコンソールにそれを印刷していたかのように文字列を送るためにpythonを必要とします。おかげjavascriptの読み取り可能なJSONのpython

+0

はあなたに任意のヘルプのこの質問ですか? http://stackoverflow.com/q/1445989/92493 –

+0

あなたのHTMLテンプレートにレンダリングし、このHTMLテンプレートがMIMEタイプ 'text/html'を使用してブラウザに送信されると考えています(またはバリアント)は、ブラウザより引用符などをエスケープするので、実際にはブラウザに送信するMIMEタイプに依存していると思います。 – mouad

答えて

13

私はよく理解して、あなたはテンプレートでJSONを使用したい場合。 これを行うには、エスケープを無効にする必要があります。

{% autoescape off %} 
var x={{json_var}} 
{% endautoescape %} 
1

は、これが私の作品:

return HttpResponse(json.dumps({'foo' : 'bar'}, ensure_ascii=False), 
    mimetype='application/json') 
+0

私は単純なHttpResponseを送信するときにこのようなものを使用しますが、この場合はテンプレートをレンダリングする必要がありました。 – leonsas

+0

Np。答えはシンプルなのはうれしい。 – Brandon

11

代わり

{% autoescape off %} 
    {{ my_json }} 
{% endautoescape %} 

を使用してのあなたは、単にフィルタを使用することができます注:

{{ my_json|safe }} 
関連する問題